如何将整个文件夹链接到库中?
我必须遵循结构
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 ...)
无论如何告诉它打包整个文件夹并链接它? 还有一些移民在他们之间有代表
答案 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 :(得分:1)
使用
file(GLOB UTIL_SOURCES utils/*.cpp)
要获取目录中的所有源文件,只需执行
add_library(UTIL, ${UTIL_SOURCES})