LLVM C ++ IDE dành cho Windows


92

Có một số IDE C / C ++ dành cho Windows, được tích hợp với trình biên dịch LLVM (và trình phân tích Clang C / C ++), giống như Xcode hiện đại.

Tôi có Dev-Cpp (nó sử dụng GCC lỗi thời) và Code :: Blocks (với một số GCC). Nhưng GCC cung cấp cho tôi những thông báo lỗi rất khó hiểu. Tôi muốn nhận được một số thông báo lỗi thân thiện với người dùng hơn từ giao diện người dùng Clang.

Có, Clang không thể được sử dụng với mã C ++ phức tạp, nhưng thân Clang đã có thể tự biên dịch LLVM. Vì vậy, tôi tự hỏi liệu có bất kỳ IDE LLVM nào đang trong quá trình phát triển hoặc trong phiên bản beta hay không.

Có, tôi có thể sử dụng Clang làm trình biên dịch khác với IDE tương thích với GCC. Nhưng có IDE nào được tích hợp với Clang không? Clang có một định dạng đầu ra khác, vì vậy IDE phải phân tích cú pháp nó. Clang có thể cung cấp phân tích cú pháp IDE của các nguồn. Clang có tùy chọn phân tích, tùy chọn này phải được hỗ trợ trong IDE. Hãy xem, ví dụ: http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Và tính năng mong muốn nhất của Clang - là tự động hoàn thành thông minh, vì vậy IDE chỉ có thể đề xuất các biến thể đúng theo cú pháp, ví dụ chỉ liệt kê các trường của cấu trúc, lớp này.

Kết quả: (kết hợp từ các câu trả lời):


3
Tôi tự hỏi liệu trong tương lai, Emacs có được hỗ trợ cho Clang không. Btw có một chế độ nhỏ emacs ở đây llvm.org/svn/llvm-project/cfe/trunk/utils/… mặc dù tôi chưa tự mình thử nghiệm nó.
ustun

Code :: Blocks hoạt động với Clang.
James Harper

Câu trả lời:


59

LLVM được hỗ trợ trong Eclipse CDT thông qua trình cắm thêm ( llvm4eclipsecdt ). Nó là IDE hỗ trợ Windows duy nhất hỗ trợ LLVM theo như tôi biết. Tôi là tác giả chính của plugin nên bạn có thể hỏi bất kỳ câu hỏi nào liên quan đến nó.

Trình cắm này cung cấp chức năng cơ bản để biên dịch Clang và llvm-gcc và hỗ trợ Linux và Windows (w / Cygwin & MiNGW). Các công cụ LLVM như trình hợp dịch, trình lưu trữ, trình liên kết và trình biên dịch tĩnh (llc) được cấu hình và có thể được tùy chỉnh thông qua giao diện người dùng. Trình cắm này cung cấp tất cả các lợi ích mà IDE có thể cung cấp như cấu hình và xây dựng dễ dàng chỉ với một thao tác.

Hạn chế duy nhất là nó chưa sẵn sàng vì nó thiếu một số tính năng nâng cao mà LLVM có thể cung cấp như phân tích Clang và tự động hoàn thành thông minh. Trình cắm này cũng không được kiểm tra tốt và có thể không hoạt động hoàn hảo, do đó tôi hy vọng tôi có thể nhận được phản hồi của người dùng thông qua danh sách gửi thư được tìm thấy từ trang web phát triển mã của Google (được liệt kê bên dưới). Tôi ước tôi có thời gian để phát triển nó hơn nữa. Tôi chỉ phát triển nó trong thời gian rảnh rỗi, điều này rất hạn chế. Tôi hoan nghênh bất kỳ nhà phát triển nào tham gia và đóng góp cho dự án.

Trang web phát triển:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Thị trường Eclipse (100% miễn phí và mã nguồn mở):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

CẬP NHẬT: Plugin không được dùng nữa. Thay vào đó, hãy cài đặt "Hỗ trợ xây dựng trình biên dịch gia đình C / C ++ LLVM" trong Ngôn ngữ lập trình bằng cách sử dụng trang web cập nhật Eclipse chính thức, ví dụ: http://download.eclipse.org/releases/mars


Chào. Vui mừng khi thấy bạn ở đây! Bạn nói "Các mã nhị phân MinGW được cung cấp cho LLVM và giao diện người dùng" - bạn có thể thêm (tại đây hoặc trên trang web mã google) một liên kết đến mã nhị phân kết hợp của LLVM không?
osgx

1
Ngoài ra, về luận án từ blog của bạn. clang không dành cho ada hoặc fortran: "Đối với các ngôn ngữ khác, bao gồm Java, Fortran và Ada, LLVM vẫn phụ thuộc vào GCC"
osgx

2
Bạn có thể nhận mã nhị phân mingw cho LLVM 2.9 từ đây: llvm.org/releases/download.html#2.9
Petri Tuononen

1
Lưu ý tốt: bạn nói đúng rằng LLVM-GCC dành cho các ngôn ngữ khác. Tôi lẽ ra phải viết rằng "biên dịch LLVM" không có giao diện người dùng cụ thể nào được đề cập nhưng tôi sẽ xóa Fortran và Ada khỏi phần tóm tắt.
Petri Tuononen

Bạn cũng có thể tích hợp trình biên dịch LLVM với Microsoft VS. Đây là liên kết llvm.org/docs/GettingStartedVS.html . hi vọng điêu nay co ich.
Krishna Oza

21

Người đóng góp LLVM Dan Gohman gần đây đã thêm hoàn thành mã Clang vào vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc được thiết kế để sử dụng trong việc tự phát triển LLVM và trợ giúp với kiểu viết mã LLVM, nhưng phần hoàn thành mã phải đủ dễ dàng để trích xuất .

Vâng, vâng, vim không phải là một IDE, nhưng nó có thể hữu ích khi biết về nó.

[sửa] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el cung cấp một tùy chọn tương tự cho emacs .


11

Qt Creator cũng hoạt động với Clang ...


Cảm ơn, đã thêm vào câu hỏi. Bạn có thể nói, từ phiên bản QTcreator nào có sự hỗ trợ của clang?
osgx

1
2.4.1 sẽ làm được .. trên linux, bạn không phải thêm chuỗi công cụ clang theo cách thủ công .. đây là thông tin về cách thêm chuỗi công cụ nếu bạn đang sử dụng windows: doc.qt.nokia.com/qtcreator-2.4/ Creator-tool-chain.html
Kokizzu,

nhưng nó chỉ được sử dụng nó để tự động hoàn chỉnh và phân tích
James Harper


5

Không có một cho các cửa sổ. Nhưng nếu bạn muốn tự động hoàn thành thông minh, netbeans có một trong những hoàn thành mã tốt nhất cho C ++. Nó phân tích cú pháp macro, vùng chứa chung và con trỏ thông minh. Thêm vào đó, nó cung cấp khả năng tái cấu trúc, chèn mã của các hàm tạo và bộ thu và bộ định tuyến. Nó hoạt động thực sự tốt. Tuy nhiên, vì nó vẫn sử dụng một trình phân tích cú pháp riêng cho C ++, nó không mắc nhiều lỗi như trình biên dịch.

Netbeans cho java được tích hợp với trình biên dịch, vì vậy nó đưa ra các lỗi và cảnh báo khi bạn nhập, cũng như hoàn thành mã chính xác về mặt cú pháp. Vì vậy, netbeans trong tương lai rất có thể sẽ tích hợp với clang để cung cấp các tính năng tương tự cho C ++.


2
netbeans phân tích mã nguồn như thế nào? Nó sử dụng giao diện C / C ++ nào?
osgx

3
Có netbeans phân tích mã nguồn để hoàn thành mã. Có lẽ trong tương lai họ sẽ sử dụng clang để phân tích cú pháp, nhưng điều đó vẫn chưa được tích hợp vào. Bạn có thể chọn các trình biên dịch khác nhau cho netbeans gcc hoặc clang. Tôi chưa thử nó với tiếng kêu.
Paul Fultz II



4

Tôi có thể thêm SublimeText 2 không? Nó đã có một plugin SublimeClang hỗ trợ hoàn thành mã thông minh dựa trên clang .


Giới thiệu về plugin: "cung cấp các đề xuất tự động hoàn thành cho C / C ++ / ObjC / ObjC ++. Nó cũng sẽ tùy chọn phân tích cú pháp mã khi được nhập và hiển thị lỗi và cảnh báo."
osgx

Ngưng
Johan boule



3

Clang có một trình điều khiển (ít nhất phải là) thay thế trực tiếp cho gcc, vì vậy về cơ bản bất kỳ IDE nào có thể sử dụng gcc làm trình biên dịch của nó cũng có thể sử dụng clang làm trình biên dịch của nó (mặc dù tôi chưa thử nghiệm nó cá nhân, vì vậy tôi không thể thực sự đảm bảo nó hoạt động tốt như thế nào).


1
Nhưng sẽ không thể sử dụng bất kỳ tính năng nào ngoài bộ công cụ tiêu chuẩn, chẳng hạn như phân tích mã và hoàn thành tab.
Mooing Duck

3

Không.

Hiện tại chỉ có xcode có hỗ trợ tiếng kêu tối thiểu. Nếu bạn muốn sử dụng phân tích tĩnh tiếng kêu trên windows, bạn sẽ phải thực hiện nó thông qua CLI.


6
Loại câu trả lời / câu hỏi này nên có thời gian chờ .. (chủ đề meta)
Hernán Eche

Hernán Eche, vâng, nhưng tôi có thể thay đổi câu trả lời được chấp nhận bất cứ lúc nào. Bạn có thể hỏi tôi nếu bạn cảm thấy tình huống đó đã được thay đổi và câu trả lời là "Có"
osgx

3

KDevelop cho Windows là một tùy chọn khác. Mặc dù vẫn còn trong giai đoạn đầu ở đó (bạn hiện cần thiết lập môi trường để có thể tự sử dụng trình biên dịch MSVC / MinGW), nó có thể sử dụng được và mang lại khả năng hiểu mã tuyệt vời của IDE cho Windows.

https://www.kdevelop.org/features


1

Không hẳn là một IDE, nhưng là sự giao thoa giữa IDE và trình soạn thảo đơn giản, một giải pháp thay thế hữu dụng cho những người không ngại viết cấu hình bằng tay: một sự kết hợp của trình soạn thảo Sublime Text 3 và plugin EasyClangComplete (cộng với Định dạng Clang để giữ cho mã của bạn gọn gàng và gọn gàng). Hoạt động tốt trên Windows nhờ những nỗ lực gần đây để làm cho LLVM MSVC tương thích ( Clang-cl cũng có khả năng tạo .PDB tương thích tính đến năm 2018, điều này rất quan trọng để gỡ lỗi).

Cập nhật: Kể từ năm 2019, một giải pháp thay thế tốt hơn và phù hợp với tương lai cho EasyClangComplete là sử dụng Clangd thông qua plugin LSP .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.