首页 > 解决方案 > CMake 链接说明

问题描述

我正在尝试将我的可执行文件上的共享对象与我的 cmake 项目中的可执行文件链接起来。

我的CMakeLists.txt

cmake_minimum_required (VERSION 2.8)
project (proto_app)

add_executable( helloDemo hello.cpp )
add_executable( faissDemo 1-Flat.cpp )

我的可执行文件faissDemo不会像这样编译,因为共享对象没有链接。共享对象位于/usr/local/lib/libfaiss.so. 我的问题是我应该如何链接到 CMake 中的共享对象?

我可以1-Flat.cpp从命令行成功编译,例如: $ g++ 1-Flat.cpp -L /usr/local/lib/ -lfaiss

标签: c++cmake

解决方案


您需要将目录添加到link_directories并将库添加为target_link_libraries

 cmake_minimum_required (VERSION 2.8)
 project (proto_app)

 link_directories(/usr/local/lib)     

 add_executable( helloDemo hello.cpp )
 add_executable( faissDemo 1-Flat.cpp )
 target_link_libraries(faissDemo faiss)

推荐阅读