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
限制选项()
命令的初始值参数。我已经相应地更新了我的答案。你喜欢回答你的问题吗?