Tôi đã cài đặt Clang bằng cách sử dụng apt-get trong Ubuntu và tôi có thể biên dịch thành công tệp C bằng cách sử dụng nó. Tuy nhiên, tôi không có ý tưởng làm thế nào để biên dịch C++ thông qua nó. Tôi cần làm gì để biên dịch C++?Làm cách nào để biên dịch C++ bằng Clang?
Trả lời
Lệnh clang
dành cho C và lệnh clang++
là dành cho C++.
Tôi đã gặp sự cố tương tự khi xây dựng Clang từ nguồn (nhưng không phải với sudo apt-get install
. Điều này có thể phụ thuộc vào phiên bản Ubuntu bạn đang chạy).
Nó có thể là giá trị kiểm tra nếu clang++
có thể tìm thấy những địa điểm chính xác của C++ thư viện của bạn:
Hãy so sánh các kết quả của g++ -v <filename.cpp>
và clang++ -v <filename.cpp>
, dưới "#include < ...> tìm kiếm bắt đầu ở đây:".
Ngoài ra, cho hậu thế - Clang (như GCC) chấp nhận -x
chuyển sang thiết lập ngôn ngữ của các tập tin đầu vào, ví dụ,
$ clang -x c++ some_random_file.txt
chủ đề mailing list này giải thích sự khác biệt giữa clang
và clang++
tốt : Difference between clang and clang++
Tôi gặp lỗi liên kết với _clang -x C++ _ khi tệp cpp được biên dịch với '#include
Tôi có mã nguồn của Clang trước mắt tôi bây giờ. Trong quá trình xây dựng (trên Windows), trước tiên nó xây dựng 'clang.exe', và sau đó các bản sao có thể thực thi thành' clang ++. Exe'. Vì vậy, nó là cùng một thực thi, chỉ trong thời gian chạy nó kiểm tra tên riêng của nó để phân biệt xem có hành xử như trình biên dịch C hay C++. HTH. –
Như một lưu ý, tùy chọn '-x C++' rất hữu ích để cung cấp như một '-extra-arg' thành * clang-tidy *, để buộc nó xử lý tệp .h có chứa C++ thay vì C. –
Tôi không biết tại sao không có câu trả lời trực tiếp giải quyết vấn đề. Khi bạn muốn biên dịch chương trình C++, tốt nhất là sử dụng clang++
. Ví dụ, các công việc sau cho tôi:
clang++ -Wall -std=c++11 test.cc -o test
Nếu biên soạn một cách chính xác, nó sẽ tạo ra các tập tin thực thi test
, và bạn có thể chạy các tập tin bằng cách sử dụng ./test
.
Hoặc bạn chỉ có thể sử dụng clang++ test.cc
để biên dịch chương trình. Nó sẽ tạo ra một tệp thực thi mặc định có tên là a.out
. Sử dụng ./a.out
để chạy tệp.
Toàn bộ quá trình rất giống với g ++ nếu bạn quen thuộc với g ++. Xem this post để kiểm tra xem cảnh báo nào được bao gồm với tùy chọn -Wall
. This page hiển thị danh sách các cờ chẩn đoán được Clang hỗ trợ.
- 1. Cách biên dịch clang thành llvm IR
- 2. Làm thế nào để cài đặt CLang bằng cách sử dụng nhị phân biên dịch sẵn?
- 3. C++ g ++ llvm-clang trình biên dịch hồ sơ
- 4. Làm thế nào để biên dịch/liên kết Boost với clang ++/libC++?
- 5. làm thế nào để sử dụng llvm + clang để biên dịch cho stm32
- 6. Làm cách nào để viết và biên dịch mã Mục tiêu-C?
- 7. Làm thế nào để sử dụng clang để biên dịch OpenCL thành mã ptx?
- 8. Làm thế nào để biên dịch OpenCV bằng libjpeg-turbo?
- 9. Làm cách nào để chọn khung đích của trình biên dịch CodeDom bằng C#?
- 10. Làm cách nào để biên dịch thư viện trên C bằng GCC?
- 11. Biên dịch các ví dụ về clang-llvm
- 12. Làm cách nào để biên dịch và liên kết mã C++ với mã C đã biên dịch?
- 13. Biên dịch mã động bằng C#
- 14. Bất kỳ hướng dẫn nào để nhúng Clang làm trình thông dịch script thành Mã C++?
- 15. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 16. Clang và Intel không biên dịch mã CRTP này
- 17. Biên dịch nhiều tệp mục tiêu-C trên dòng lệnh với clang
- 18. Trong cmake, làm thế nào tôi có thể kiểm tra nếu trình biên dịch là Clang?
- 19. Làm thế nào để biên dịch MPI bằng gcc?
- 20. Các vấn đề khi biên dịch Mục tiêu C với Clang (Ubuntu)
- 21. Làm thế nào để biên dịch RarCrack trên Mac OSX?
- 22. Biên dịch Python sang C bằng cách sử dụng Cython
- 23. Làm cách nào để biên dịch thư viện bằng mã nguồn bằng các công cụ NDK?
- 24. Hiệu suất biên dịch mã bằng biên dịch biên dịch
- 25. Làm cách nào để biên dịch công cụ Google Courgette?
- 26. Làm thế nào để biên dịch và chạy C++ với MinGW bằng Eclipse và CDT?
- 27. Làm cách nào để biên dịch Ruby sang Javascript?
- 28. Trình biên dịch biên dịch trong C#
- 29. Biên dịch tăng C++ 11 clang mac không thể tìm thấy cstddef
- 30. Làm cách nào để mở rộng Clang bằng trình phân tích cú pháp bổ sung?
Không có thiết bị nào không hoạt động. Chúng ta có cần cài đặt nó bổ sung không? – pythonic
Tôi sợ quả cầu pha lê của tôi là khiếm khuyết, vì vậy bạn sẽ thực sự phải cho chúng tôi biết liệu có bất kỳ thông báo lỗi nào không;) –
@ user1018562 Vui lòng xác định "không hoạt động". Đó có phải là 'lệnh không tìm thấy' hoặc lỗi khác không? – adl