将外部库"inside"项目中移动

Moving external libraries "inside" your project

本文关键字:移动 项目 inside 外部      更新时间:2023-10-16

假设我当前使用

target_link_libraries(...)

在我的CMakeLists.txt中,它要求库安装在我正在编译的计算机上,有没有办法在我的项目中移动这些外部库(例如,到libs/文件夹中(?

是的,但有多种方法。

我最喜欢的是在libs/目录中实际安装这些库,这样结构看起来像这样:

- libs/
-lib1/
- include
- lib
-lib2/
- include
- lib

只需将库安装在项目的目录中即可完成:

# inside lib1/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/my/project/libs/lib1
make install

然后,在您的项目中,您可以将前缀路径设置为libs/目录:

list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_PATH}/libs/")
# ...
find_package(lib1) # find the library in libs/lib1

其他方法是使用add_subdirectory,并将项目源置于libs中。你可以使用他们定义的目标,这样你就可以链接到他们。