【发布时间】:2013-08-06 17:37:37
【问题描述】:
我在 Mac OS 10.8 上使用 Eclipse 4.2,并安装了命令行工具 (Xcode 4.6.3)。 clang 编译器通过使用以下标志来支持 C++11:-std=c++11 -stdlib=libc++。
我在 Eclipse 中有一个由 Autotools 管理的项目。在调用configure 时覆盖CXX 和CXXFLAFGS 环境变量后,真正的编译按预期工作。但是Eclipse中的静态代码分析继续使用GCC(Xcode安装的版本是GCC 4.2),所以不支持C++11,而且很多行显示的错误不是真实的,做静态代码分析几乎没用。
使用自制软件我还安装了 GCC 4.7,但我没有成功让 Eclipse 使用该版本(或 clang++)来执行静态代码分析。
在使用 Autotools 管理的项目时,是否可以让 Eclipse 使用不同的编译器进行静态代码分析?我应该在哪里指定?
【问题讨论】:
-
嗯,很有趣。我一直认为静态分析是由 Codan 完成的,例如参见 C++, Eclipse CDT code analysis? 你怎么知道在你的情况下静态分析是由 gcc 完成的? (我使用的是 Linux。)
-
@Ali 我不完全确定实际检查是如何完成的,但我想在这种情况下,Codan 仍然需要查找包含标头。这些不应该是 GCC 4.2 (Xcode 4.6.3) 中包含的那些,而是 Clang 的那些或 GCC 4.7 中包含的那些(通过自制软件)。
-
是的,这是有道理的。如果有任何安慰的话,静态分析仍然不能很好地与 C++11(或 C++98 相关,尽管我报告了我的错误报告)。这是我在 Eclipse 中设置的第一件事,我关闭了静态分析... :(
-
@Ali 我设法解决了这个问题 :)
-
感谢您让我知道这件事。我不明白为什么这对你有帮助,但我很高兴它确实如此。我的台词已经看起来像你写的那样,但是静态分析失败了。 :(
标签: eclipse macos c++11 clang autotools