我想用子模块-静态库创建项目c ++(gcc)。基本库应始终进行优化构建,并且没有调试信息,主模块不能进行优化并且具有调试信息。 第一个标志解决方案是CMAKE_CXX_FLAGS:
project(example)
set(CMAKE_CXX_FLAGS "-O3 -std=c++14")
add_executable(example main.cpp example.cpp log.h example.h)
add_library(log log.cpp log.h)
target_link_libraries(example log)
但是这种解决方案是全球性的。最好使用add_compile_options:
project(example)
add_compile_options(-std=c++14)
add_executable(example main.cpp example.cpp log.h example.h)
add_compile_options(-O3)
add_library(log log.cpp log.h)
target_link_libraries(example log)
但是再说一次-第二个模块必须是第一个模块的标志失败,我只能添加选项,不能更改。