0
为什么建议先将源添加到列表中,而不是直接添加到可执行文件?将源添加到cmake中的列表变量与直接添加可执行文件中
PROJECT( helloworld )
SET( hello_SRCS hello.cpp )
ADD_EXECUTABLE( hello ${hello_SRCS} )
为什么不直接跳过SET
行?
为什么建议先将源添加到列表中,而不是直接添加到可执行文件?将源添加到cmake中的列表变量与直接添加可执行文件中
PROJECT( helloworld )
SET( hello_SRCS hello.cpp )
ADD_EXECUTABLE( hello ${hello_SRCS} )
为什么不直接跳过SET
行?
我已经经常见到这种做法,也认为这是一种很好的做法。例如,如果您使用CLion IDE(实际使用CMakeLists.txt作为其项目结构文件),您会看到,当您创建新项目时,默认会创建一个SOURCE_FILES变量。
为什么这是一个好的做法,我可以想到的一个原因是,如果你想建立相同的文件到几个目标。例如,您可能希望有静态和共享的二进制文件为您的lib,所以如果你有一个SOURCE_FILES变种,你只需要编写如下:
add_library(myLibStatic STATIC ${SOURCE_FILES})
add_library(myLibShared SHARED ${SOURCE_FILES})
'为什么推荐...' - 第一次听到这样的建议。做什么更适合你的具体情况。如果您从许多来源构建可执行文件,并且这些来源需要不同的预处理,则可以有一个列出该来源的变量。如果你从几个来源构建简单的可执行文件,直接'add_executable'将是正确的选择。 – Tsyvarev