2011-10-24 46 views
13

Tôi đã tải xuống và xây dựng phiên bản 3.0 để chơi xung quanh một chút với tính năng C++ 11, tuy nhiên tôi nhận được lỗi này (mặc dù tôi am sử dụng cờ -Wc++11-extensions).Kích hoạt hỗ trợ C++ 11 trong Clang

S: \ llvm \ code> vang ++ exe -WC++ 11-phần mở rộng variadic.cpp
variadic.cpp:. 4: 19: cảnh báo: mẫu variadic là một phần mở rộng C++ 11 [-WC++ 11-extensions]
mẫu < typename ... args >

tôi đã xây dựng kêu vang với VS10 trên Windows 7 (64bit) và xây dựng thành công thông qua.


Edit: Như @cli_hlt chỉ ra đây là một cảnh báo không phải là một lỗi, lỗi này là một cái gì đó tôi không dán không thể thực hiện lệnh: chương trình không thực thi. Nguyên nhân gốc rễ cho rằng link.exe không nằm trong PATH. Một khi tôi chạy từ một dấu nhắc lệnh VS tất cả là tốt.

+23

Tôi cho rằng ban đầu bạn đã thực hiện 'clang ++ variadic.cpp', đã thấy cảnh báo và thêm cờ cảnh báo mong cảnh báo biến mất. '-WC++ 11-extensions' được bật theo mặc định khi biên dịch ở chế độ C++ 03 (chế độ mặc định), vì vậy đó là lý do bạn thấy nó. Bạn có thể tắt nó bằng cách sử dụng '-Wno-C++ 11-extensions', tuy nhiên có lẽ tốt hơn là chỉ biên dịch trong chế độ C++ 11 bằng cách sử dụng' -std = C++ 11' – bames53

+0

@ bames53 nhờ đó chính xác là những gì đã xảy ra. – Motti

Trả lời

20

Bạn đang nhận được cảnh báo chứ không phải lỗi.

Công tắc -W được sử dụng để bật cảnh báo trình biên dịch. Vì vậy, đối với sự hiểu biết của tôi, bằng cách sử dụng -WC++ 11-phần mở rộng bạn nói với trình biên dịch để cảnh báo bạn nếu bạn đang sử dụng C + + 11 phần mở rộng.

Và đó chính xác là những gì xảy ra ở đây.

+2

Đúng vậy, tôi là một thằng ngốc. Các cảnh báo được theo sau bởi lỗi "không thể thực hiện lệnh: chương trình không thực thi được" nhưng điều này xảy ra ngay cả đối với 'int main() {}'. Lỗi của tôi.. – Motti

Các vấn đề liên quan