gpt4 book ai didi

c++ - 在 cmake c++ 项目中包含库的首选方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:11 25 4
gpt4 key购买 nike

我已经构建了 libfreenect2 库,现在我想将它包含在我的 C++ 项目中。之前,我在 cmake 中包含了一些库,如下所示:

# Include OpenCV
find_package( OpenCV REQUIRED )
target_link_libraries( ${PROJECT_NAME} ${OpenCV_LIBS} )

这意味着必须将库正确地“安装”到我的系统中,cmake 才能找到它,对吗?

然而,这次我需要“手动”将必要的文件和目录包含到我的项目中。但我不知道如何“正确”地做到这一点。

已关注 this tutorial ,但令人困惑的是我必须如何添加库、包含目录、添加子目录(为什么它突然是“添加”而不是“包含”)、链接库……是术语不一致,还是方法总是这么乱?我不明白为什么仅仅表达库目录 ONCE 是不够的,然后 cmake 应该弄清楚如何处理它?抱歉我的无知。

无论如何,包含自定义构建库的首选步骤是什么?

这是我目前的尝试,(当我尝试编译我的项目时)产生“找不到 -lfreenect2”

project(kinect-test)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)

add_executable(${PROJECT_NAME} ${SRC_LIST})

# Include directories
include_directories ($ENV{HOME}/freenect2/include)

# Find freenect package
set(freenect2_DIR $ENV{HOME}/freenect2/lib/cmake/freenect2)
find_package(freenect2 REQUIRED)
target_link_libraries (${PROJECT_NAME} freenect2)

最佳答案

您需要指定可以找到给定库的搜索路径。我假设文件 libfreenect.so(或 libfreenect.a)位于 /path/to/freenect - 请酌情编辑使用一个变量。在您的 target_link_libraries 命令上方添加命令:

link_directories(/path/to/freenect)

关于c++ - 在 cmake c++ 项目中包含库的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37742874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com