想象一下以下情况:
我有“project”文件夹,在这个文件夹中我有“src”文件夹和2个文件“1.cpp”和“2.cpp”。 每个.cpp都会生成一个可执行文件。在cmake生成makefile之后,我希望能够执行以下操作:
所以我希望能够写下以下内容:
实现这一目标的最佳方法是什么? 非常感谢!
答案 0 :(得分:3)
您需要根目录中的顶级CMakeLists.txt,它知道您的“src”目录(使用add_subdirectory
)。然后在“src”中,您将需要另一个CMakeLists.txt,它指定如何编译可执行文件。这本身就可以说,例如:
make 1 2
对于调试/释放模式,可以通过变量CMAKE_BUILD_TYPE
在cmake中指定。但是,如果未指定变量,我通常会在顶层指示调试或释放模式:
IF( NOT CMAKE_BUILD_TYPE )
SET( CMAKE_BUILD_TYPE Debug )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG" )
ENDIF( NOT CMAKE_BUILD_TYPE )
在不修改CMakeLists.txt的情况下编辑构建类型的另一种方法是执行
make edit_cache
这将带来一个带有变量的ncurses对话框,其中包含CMAKE_BUILD_TYPE
。