【发布时间】:2017-01-22 21:52:41
【问题描述】:
这个问题与Instruct Cmake to use CXX and CXXFLAGS when driving link?有关。在前一个问题中,我们试图指示CMake在调用链接器时使用CXXFLAGS。
add_compile_options
我们发现如下代码
if (CMAKE_VERSION VERSION_LESS 2.8.12)
add_definitions(-foo)
else()
add_compile_options(-foo)
endif()
message(STATUS, "CXXFLAGS: ${CMAKE_CXX_FLAGS}")
产生输出
CXXFLAGS:
设置 CMAKE_CXX_FLAGS
我们发现如下代码
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -foo" )
message(STATUS, "CXXFLAGS: ${CMAKE_CXX_FLAGS}")
产生输出
CXXFLAGS: -foo
问题
我们发现 CMake 在这两种情况下都会使用 -foo 创建目标文件。所以-foo 肯定会进入CXXFLAGS。
第一套CMake代码和第二套CMake代码有什么区别?
为什么CMAKE_CXX_FLAGS 在一个实例中未设置,而在另一个实例中设置?
【问题讨论】:
-
如果版本很重要:
cmake --version返回cmake version 3.6.2。 -
@usr1234567 - 是的,很抱歉这些问题。想要 CMake 的人没有维护它,所以现在责任落在了我身上。我对 CMake 几乎一无所知,因为我使用 GNUmake 并编写自己的 makefile。我遗憾接受了那些 CMake 补丁...是的,我会编辑问题。对此感到抱歉。