导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    在Windows上cmake无法正确找到boost库模块的问题

    技术交流
    1
    1
    1880
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 编辑

      在我们安装完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文件中

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community