2012-11-25 90 views
0

如何将整个文件夹链接到库中?链接整个文件夹

我有以下结构

src/main.cpp 
src/alg/alg1.cpp 
src/alg/alg1.hpp 
src/alg/alg2.cpp 
src/alg/ ... 
src/utils/something.cpp 
src/utils/... 

我可以只使用

add_library(ALG1 alg/alg1.cpp) 
add_library(ALG2 ....) 
...... 
add_library(UTIL1 utils/something.cpp) 

add_executable(PROG main.cpp) 

target_link_libraries(PROG ALG1 ALG2 ... UTIL1 UTIL2 ...) 

反正告诉它来包装整个文件夹,并将其链接? 也有些migth它们之间有DEPS

+1

你做了什么研究? –

+0

你使用什么工具? –

回答

2

将在下面的满足您的需求?

add_library(ALG alg/alg1.cpp alg/alg1.hpp alg/alg2.cpp #... list all files) 

add_library(UTIL utils/something.cpp #... list all files) 

add_executable(PROG main.cpp) 

target_link_libraries(PROG ALG UTIL) 

请注意,我们不推荐使用的命令一样file(GLOB ...)收集源文件,因为那样的话,如果你将文件添加到目录的构建系统也不会再生。

1

使用

file(GLOB UTIL_SOURCES utils/*.cpp) 

要得到所有的源文件的目录,然后就去做

add_library(UTIL, ${UTIL_SOURCES})