C++ cmake ExternalProject\使用project()命令添加和设置cmake\ CXX\编译器
我正在尝试使用cmake构建一个多项目项目,并使用了C++ cmake ExternalProject\使用project()命令添加和设置cmake\ CXX\编译器,c++,xcode,cmake,C++,Xcode,Cmake,我正在尝试使用cmake构建一个多项目项目,并使用了ExternalProject\u Add()命令。但是,我无法使CMAKE_CXX_COMPILER选项保持不变,这会导致以下问题:在配置期间,外部项目检查多个编译器功能,在.h文件中设置(或不设置)必要的标志。当我运行make时,使用了不同的编译器,.h文件中的值不正确 我将其归结为以下几行代码,它们出现在外部项目(CGAL)的CMakeLists.txt文件的顶部: 当我运行此命令时,第一条消息显示正确的值(通过XCode安装的框架编译器
ExternalProject\u Add()
命令。但是,我无法使CMAKE_CXX_COMPILER
选项保持不变,这会导致以下问题:在配置期间,外部项目检查多个编译器功能,在.h文件中设置(或不设置)必要的标志。当我运行make时,使用了不同的编译器,.h文件中的值不正确
我将其归结为以下几行代码,它们出现在外部项目(CGAL)的CMakeLists.txt
文件的顶部:
当我运行此命令时,第一条消息显示正确的值(通过XCode安装的框架编译器)。但是,第二条消息显示错误的编译器(我与MacPorts一起安装的GNU版本)。我查过说明书,但都是些稀奇古怪的东西。他们注意到,在不包含project()
命令的情况下,将使用CXX
和C
语言添加隐式命令。果然,当我删除project()
命令时,两条消息都报告了错误的编译器
关于project()
命令,有什么我不知道的吗?它是否在文件路径中的某个位置搜索CMakeLists.txt
文件并默认加载?有没有办法重载此设置(除了创建临时变量来保存旧值之外)
FWIW不起作用。您想使用哪种编译器?一个快速修复方法可能是临时编辑.bash_配置文件以禁用macports导出路径。不幸的是,我正在尝试让构建为其他用户工作。另外,设置“export PATH=[Frameworks bin PATH]:$PATH”也不起作用。问题是我包含了
BUILD_命令${make}
,该命令在运行make时没有附加参数。
message("**** CXX Compiler is ${CMAKE_CXX_COMPILER}")
project(CGAL CXX C)
message("**** CXX Compiler is ${CMAKE_CXX_COMPILER}")