CMake链接图集和llapack

时间:2014-02-06 21:51:14

标签: 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)

1 个答案:

答案 0 :(得分:2)

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

你像这样使用它们:

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