c++ - 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
解决方案
您需要将目录添加到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)
推荐阅读
- html - 如何在 Bootstrap 中并排制作容器?
- python - 使用不断变化的变量更新标签
- javascript - 如何在 React Native 中将 API 调用与 FlatList 分开?
- php - 带有自定义保护的 Laravel 身份验证不起作用
- c - 运行C程序时出现Segmentation Fault错误
- wso2ei - wso2ei 6.6 调度程序自动停止
- python - 具有多个 response.out.write 语句的 Python 方法
- sql - 我有一个名为 records 的表,它的 jsonb 类型的数据列包含以下详细信息。我正在使用 postgres 9.5
- rust - 未找到方法“span”以供参考“&ExprPath”(来自“syn”板条箱)
- python - 从 sympy 的系列中导出所有系数