激活Clang中的C++11支持

13

我下载并构建了clang 3.0版本以便尝试C++11特性,然而我收到了此错误提示(即使我确实使用了-Wc++11-extensions标志)。

S:\llvm\code>clang++.exe -Wc++11-extensions variadic.cpp
variadic.cpp:4:19: 警告: 可变参数模板是C++11扩展 [-Wc++11-extensions]
template <typename... Args>

我在Windows 7(64位)上使用VS10构建了clang,并且构建成功。


编辑:如@cli_hlt所指出的,这只是一个警告而不是错误,错误是我没有贴出的无法执行命令:程序不可执行。这个问题的根本原因是link.exe没有在PATH中。当我从VS命令提示符中运行时,一切都很好。


25
我假设您最初运行了 clang++ variadic.cpp,看到了警告并添加了警告标志,期望警告会消失。在C++03模式(默认模式)下编译时,默认开启了 -Wc++11-extensions,所以您看到了这个警告。您可以使用 -Wno-c++11-extensions 关闭它,但最好使用 -std=c++11 在 C++11 模式下编译。 - bames53
@bames53 谢谢,那正是发生的事情。 - Motti
1个回答

20
你收到的是警告,而不是错误。
-W开关用于启用编译器警告。因此,通过使用-Wc++11-extensions,您告诉编译器在使用C++11扩展时向您发出警告。
这正是在这里发生的事情。

2
你说得对,我是个白痴。警告后出现错误“无法执行命令:程序不可执行”,但即使是 int main() { } 也会发生这种情况。我的错。 - Motti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接