我如何在 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/