Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cmake ExternalProject\使用project()命令添加和设置cmake\ CXX\编译器_C++_Xcode_Cmake - Fatal编程技术网

C++ cmake ExternalProject\使用project()命令添加和设置cmake\ CXX\编译器

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安装的框架编译器

我正在尝试使用cmake构建一个多项目项目,并使用了
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}")