将外部库“放入”项目内部

时间:2019-11-12 21:24:05

标签: c++ cmake

假设我当前使用

target_link_libraries(...)

我的CMakeLists.txt中要求将库安装在我正在编译的计算机上,是否可以将这些外部库移动到项目中(例如,移至libs /文件夹中)?

1 个答案:

答案 0 :(得分:0)

是的,但是有多种方法。

我最优选的是将这些库实际安装在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中。您将能够使用它们定义的目标,以便可以链接到它们。