Compiler construction 如何让CMake在系统路径上使用默认编译器?
目前,我从构建目录调用CMake,如下所示: CXX=“/opt/gcc-4.8/bin/g++”cmake 使CMake使用此特定编译器。否则,它将使用操作系统默认编译器Compiler construction 如何让CMake在系统路径上使用默认编译器?,compiler-construction,cmake,Compiler Construction,Cmake,目前,我从构建目录调用CMake,如下所示: CXX=“/opt/gcc-4.8/bin/g++”cmake 使CMake使用此特定编译器。否则,它将使用操作系统默认编译器 我的路径在所有其他路径前面都有“/opt/gcc-4.8/bin”。因此,有没有办法在“`CMakeLists.txt”文件中指定使用路径上的默认g++而不是预先添加环境变量 CMake尊重PATH环境变量的设置,但优先考虑通用编译器名称cc和c++。要确定CMake在UNIX下默认使用哪个C编译器,请运行: $ which
我的路径在所有其他路径前面都有“
/opt/gcc-4.8/bin
”。因此,有没有办法在“`CMakeLists.txt”文件中指定使用路径上的默认g++而不是预先添加环境变量 CMake尊重PATH
环境变量的设置,但优先考虑通用编译器名称cc
和c++
。要确定CMake在UNIX下默认使用哪个C编译器,请运行:
$ which cc
< P>确定默认的C++编译器,运行:
$ which c++
如果在
/opt/gcc-4.8/bin
中生成指向/opt/gcc-4.8/bin/g++
的符号链接c++
,则默认情况下,CMake应该使用GCC4.8。cc的位置而不是c++
决定了CMake将使用哪个c++
。例如,如果你有/usr/local/bin/c++
但是/usr/local/bin/cc
,那么cmake仍然会拾取/usr/bin/c++
,而不是/usr/local/bin/c++
。在这种情况下,在/usr/local/bin/cc
处创建一个指向/usr/local/bin/gcc
的符号链接将需要使用/usr/local/bin/c++
另一种方法是将项目的语言显式设置为C++:
项目(foo-CXX)
好的,谢谢。结果是我运行的shell脚本弄乱了我的路径。接受这个答案是为了得到有用的信息“CMake尊重PATH环境变量的设置,但优先考虑通用编译器名称cc和c++”。谢谢;这很有帮助。不幸的是,当我添加这样的符号链接时,CMake还坚持从同一个目录中提取Python(尽管我想要的Python在我的路径的前面)。难道真的没有办法说服这件事仅仅是为了从我的路径中获取东西,就像从一开始的所有其他Unix实用程序一样吗?唉,是的,真烦人。如果项目是你自己的(或者如果你可以提交一个拉请求),你可以参考如何在你的代码> CMACHORM.TXT 中使用一对代码< FIDXProjial> /Cuth>来解决C和C++编译器从<代码> $PATH < /C>环境变量中获得的无链接链接。特别是在我们广泛使用的HPC环境中,我认为这是合理的默认行为,不幸的是,这不是CMake默认行为。