如何解决在CMake中链接外部预建库
我正在构建一个利用项目范围之外的库的项目。我对CMake相对较新,我似乎无法构建此库。我的代码如下:
cmake_minimum_version(VERSION 3.1)
project(cameraCode VERSION 1.0.0)
add_library(camControl SHARED IMPORTED
/opt/MVS/lib/64/MVCamControl
/opt/MVS/include/MvCamControl.h)
add_executable(${PROJECT_NAME} cameraCode.cpp)
target_link_libraries(${PROJECT_NAME}
PRIVATE
camControl)
当我这样做时,它可以配置,但是在构建时,出现此错误: make [2] ***没有规则来创建目标“ cameraCode”所需的目标“ camControl-NOTFOUND”。停止。
解决方法
add_library 表示您正在构建库。
如果您说的是预建的库,我不认为add_library是您想要的。
看起来您只需要 link_directories 和 include_directories ,客户端就可以找到库和头文件。
,使用IMPORTED
库是正确的,但是您需要set some properties而不是将文件作为add_library
的一部分传递:
add_library(camControl SHARED IMPORTED)
set_target_properties(camControl PROPERTIES
IMPORTED_LOCATION /opt/MVS/lib/64/MVCamControl/libMVCamControl.so
INTERFACE_INCLUDE_DIRECTORIES /opt/MVS/include/
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。