c++ - CMake链接图集和llapack

标签 c++ cmake ros

我如何在 CMake 中告诉编译器特定库在哪里?

例如,使用终端执行以下操作:

g++ main.cpp hmm.cpp -I /usr/include/atlas -L /usr/lib64/atlas/ -llapack -lblas

但是,如何在我的 CMake 文件中包含以下内容?

我正在使用 ROS 操作系统并且目前有:

rosbuild_add_executable(build src/hmm.cpp)

最佳答案

查找库的传统方法是使用 find_package .通常需要提供 FindLIBNAME。对于 LAPACK,CMake already ships with one .对于 map 集,您必须自己提供一份。

你可以这样使用它们:

find_package(LAPACK)
if(LAPACK_FOUND)
  target_compile_options(my_exe_target ${LAPACK_LINKER_FLAGS})
  target_link_library(my_exe_target ${LAPACK_LIBRARIES})
else()
  # panick
endif()

通常find_package也会导出include目录,但是FindLAPACK好像不是这样,真是奇怪。你可能想提供一个不烂的版本,like this one .

关于c++ - CMake链接图集和llapack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614824/

相关文章:

c++ - 如何解决访问不同函数的 "nonstatic member reference must be relative to a specific object"

c++ - 单应错误

c++ - 连接到共享库时 cmake 中出现 "No rule to make target"错误

python - Python 中的 Rostopic pub 等效项

cmake add_custom_command 已经过时了

swift - 在 CentOS 上构建 Swift

c++ - 无法使用 CMake 编译简单的 Opencv C++ 文件

c++ - 在c++中调用没有对象的函数

c++ - 使用 GNU Plot 绘制复杂函数

c++ - STL MAP 应该使用 find() 或 [n] 标识符在 map 中查找元素?