Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接整个文件夹_C++_Cmake - Fatal编程技术网

C++ 链接整个文件夹

C++ 链接整个文件夹,c++,cmake,C++,Cmake,如何将整个文件夹链接到库中 我必须遵循以下结构 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

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

我必须遵循以下结构

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 ...)
无论如何,要告诉它打包整个文件夹并链接它吗? 还有一些可能在它们之间有DEP

使用

file(GLOB UTIL_SOURCES utils/*.cpp)
要获取目录中的所有源文件,只需执行以下操作

add_library(UTIL, ${UTIL_SOURCES})
使用

要获取目录中的所有源文件,只需执行以下操作

add_library(UTIL, ${UTIL_SOURCES})

以下内容适合您的需要吗

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…
之类的命令来收集源文件,因为如果将文件添加到目录中,生成系统将不会重新生成。

以下内容是否适合您的需要

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…
之类的命令来收集源文件,因为如果将文件添加到目录中,生成系统将不会重新生成。

您做了哪些研究?您做了哪些研究?