Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
CMake不使用CMake_CXX_编译器作为正确的默认值 我们的项目经常是交叉编译的,所以我们希望允许不同的目标C++编译器不同于在前端节点上运行的编译器。CMakeLists.txt包含以下内容: OPTION(target_cxx "select target CXX Compiler for building libqphix-codegen.a" ${CMAKE_CXX_COMPILER}) OPTION(target_cxxflags "select target CXXFLAGS for building libqphix-codege.a" ${CMAKE_CXX_FLAGS})_Cmake - Fatal编程技术网

CMake不使用CMake_CXX_编译器作为正确的默认值 我们的项目经常是交叉编译的,所以我们希望允许不同的目标C++编译器不同于在前端节点上运行的编译器。CMakeLists.txt包含以下内容: OPTION(target_cxx "select target CXX Compiler for building libqphix-codegen.a" ${CMAKE_CXX_COMPILER}) OPTION(target_cxxflags "select target CXXFLAGS for building libqphix-codege.a" ${CMAKE_CXX_FLAGS})

CMake不使用CMake_CXX_编译器作为正确的默认值 我们的项目经常是交叉编译的,所以我们希望允许不同的目标C++编译器不同于在前端节点上运行的编译器。CMakeLists.txt包含以下内容: OPTION(target_cxx "select target CXX Compiler for building libqphix-codegen.a" ${CMAKE_CXX_COMPILER}) OPTION(target_cxxflags "select target CXXFLAGS for building libqphix-codege.a" ${CMAKE_CXX_FLAGS}),cmake,Cmake,当我用cmake~/Projekte/qphix codegen/-Disa=avx-DCMAKE\u CXX\u COMPILER=g++-DCMAKE\u CXX\u FLAGS='-O3-march=sandybridge'调用它时,我希望target\u CXX被设置为g++,并相应地设置标志。但是,target_cxx的值为OFF 我需要指定-Dtarget\u cxx,以获取除关闭之外的其他值 是否有其他方法可以使这些变量获得合理的默认值?我的印象是,默认值的计算太早。选项()仅适用

当我用
cmake~/Projekte/qphix codegen/-Disa=avx-DCMAKE\u CXX\u COMPILER=g++-DCMAKE\u CXX\u FLAGS='-O3-march=sandybridge'
调用它时,我希望
target\u CXX
被设置为
g++
,并相应地设置标志。但是,
target_cxx
的值为
OFF

我需要指定
-Dtarget\u cxx
,以获取除关闭
之外的其他值

是否有其他方法可以使这些变量获得合理的默认值?我的印象是,默认值的计算太早。

选项()
仅适用于布尔变量,它只是让用户传递一些标志。这里需要的是
set()
。有两种变体:

set(varname value)

前者创建一个由所有子目录继承的变量,后者创建一个具有字符串类型的用户可服务变量。

选项()仅适用于布尔变量,它只是让用户传递一些标志。这里需要的是
set()
。有两种变体:

set(varname value)


前者创建一个由所有子目录继承的变量,后者创建一个具有字符串类型的用户可服务变量。

调用
选项()
需要在
项目()调用之后。
调用(计算
CMAKE_CXX_编译器
)。但我不确定你在这里想要实现什么。这看起来更像是您放入的与项目附带的内容不同的内容。我已通过使用
set
而不是
option
解决了这一问题。我意识到
选项
仅适用于布尔选项。现在它工作得很好。工具链的东西看起来很有趣,我稍后会看一看。谢谢,我不知道
ON
/
OFF
限制
选项()
命令的初始值参数。我已经相应地更新了我的答案。您想回答您的问题吗?
选项()
调用需要在
项目()调用之后(
调用的计算结果是
CMAKE\u CXX\u编译器
)。但我不确定你在这里想要实现什么。这看起来更像是您放入的与项目附带的内容不同的内容。我已通过使用
set
而不是
option
解决了这一问题。我意识到
选项
仅适用于布尔选项。现在它工作得很好。工具链的东西看起来很有趣,我稍后会看一看。谢谢,我不知道
ON
/
OFF
限制
选项()
命令的初始值参数。我已经相应地更新了我的答案。你喜欢回答你的问题吗?