2016-05-14 248 views
0

为什么建议先将源添加到列表中,而不是直接添加到可执行文件?将源添加到cmake中的列表变量与直接添加可执行文件中

PROJECT( helloworld ) 
SET( hello_SRCS hello.cpp ) 
ADD_EXECUTABLE( hello ${hello_SRCS} ) 

为什么不直接跳过SET行?

+1

'为什么推荐...' - 第一次听到这样的建议。做什么更适合你的具体情况。如果您从许多来源构建可执行文件,并且这些来源需要不同的预处理,则可以有一个列出该来源的变量。如果你从几个来源构建简单的可执行文件,直接'add_executable'将是正确的选择。 – Tsyvarev

回答

2

我已经经常见到这种做法,也认为这是一种很好的做法。例如,如果您使用CLion IDE(实际使用CMakeLists.txt作为其项目结构文件),您会看到,当您创建新项目时,默认会创建一个SOURCE_FILES变量。

为什么这是一个好的做法,我可以想到的一个原因是,如果你想建立相同的文件到几个目标。例如,您可能希望有静态和共享的二进制文件为您的lib,所以如果你有一个SOURCE_FILES变种,你只需要编写如下:

add_library(myLibStatic STATIC ${SOURCE_FILES}) 
add_library(myLibShared SHARED ${SOURCE_FILES})