ROS交流群
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
在Windows上cmake无法正确找到boost库模块的问题
-
在我们安装完boost库之后。如果有其他程序通过cmake引用boost库的时候。很有可能出现boost库已经找到,但是对应的模块无法载入。这个问题在于boost的编译版本有很多,比如32位,64位,Debug版或Release版。不同的编译版本生成的链接库文件的名字是不一样的。cmake程序要根据系统的情况和编译配置去猜测文件名。如果猜对了就可以找到,但是也有猜错的情况。这时候就需要进行配置才能找到对应的库文件。
CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1106 (message): Unable to find the requested Boost libraries. Boost version: 1.54.0 Boost include path: D:/boost_1_54_0 The following Boost libraries could not be found: boost_thread boost_system boost_log boost_log_setup boost_program_options No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost. Call Stack (most recent call first): CMakeLists.txt:20 (find_package)
在cmake的安装路径里找到下面的文件
CMake\share\cmake-3.13\Modules\FindBoost.cmake
这个文件有在开头有很多注释,里面有很多参数。通过配置这些参数可以帮助cmake找到对应的库文件。
下面是比较关键的几个参数set(Boost_DEBUG ON) #是否开启Boost Debug模式,ON位开启,OFF关闭。开启之后会输出很多调试信息,方便寻找错误 set(Boost_ARCHITECTURE "-x32") # CPU架构,对应库文件文件名里的x32或者x64 set(Boost_THREADAPI "win32") # 线程类型,对应thread模块文件名里面的pthread或者win32
只要其猜测的文件名和实际文件名能够对应上库的引用就没有问题。你可以把这几个参数设置在自己项目的
CMakeLists.txt
文件中