Этот вопрос связан с Поручить Cmake использовать CXX и CXXFLAGS во время вождения ссылки? В первом вопросе мы пытаемся указать 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:
SET 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
отменяется в одном экземпляре и устанавливается в другом экземпляре?