之间有什么区别-std=c++11和-std=gnu++11GCC和铿锵的编译参数?同样的问题c99和gnu99?我了解C++和C标准,这是我感兴趣的参数差异.
我已经读到某处与某些扩展有关但我不清楚哪些扩展以及如何在新项目之间进行选择.
我已经添加了一切,我$PATH和我调整SConstruct设置适当的环境变量,按照这些答案[ 1,2,3 ].现在我跑的时候
scan-build --use-c++=`which clang++` scons
Run Code Online (Sandbox Code Playgroud)
构建开始,我可以看到分叉的过程scons是
/path/to/c++-analyzer ... -std=c++11 ...
Run Code Online (Sandbox Code Playgroud)
目标文件成功构建,但后来出现错误:
could not find clang line
Run Code Online (Sandbox Code Playgroud)
c++-analyzer分叉进程不包含字符串时会发生此错误-cc1.但如果我检查ps aux,我清楚地看到
/path/to/clang -cc1 ...
Run Code Online (Sandbox Code Playgroud)
程序如何正确构建,但静态分析器会失败?
作为参考,如果我手动运行
scan-build clang++ <parameters from scons>
Run Code Online (Sandbox Code Playgroud)
然后构建成功并生成报告!
我也可以通过添加来"欺骗"
env["ENV"]["PATH"] = os.environ["PATH"]
Run Code Online (Sandbox Code Playgroud)
然后跑
CXX="scan-build clang++" scons
Run Code Online (Sandbox Code Playgroud)
我不能scan-build在没有scons修改的情况下自行运行SConstruct.