zoukankan      html  css  js  c++  java
  • Boost1.67编译+CMake Generate时遇到的一个错误

    下载的一个库编译时依赖boost,记录一下boost的编译:

    1. 下载源码
    2. vs命令行里cd到根目录,运行bootstrap.bat,发现多了几个文件{b2.exe、bjam.exe、project-config.jam、bootstrap.log。其中b2.exe和bjam.exe两个作用一样,bjam.exe对应的是老版本,b2是bjam的升级版本。}
    3. 生成好编译程序以后,可以使用以下命令来编译boost了。
      b2.exe stage --toolset=msvc-14.1 address-model=64 --stagedir="E:Documentsoost_1_67_0oost_1_67_0VC14" threading=multi --build-type=complete –-build-dir="E:Documentsoost_1_67_0oost_1_67_0uild"
      

      参数含义参考 链接

    4. 漫长的等待。

    -------------------------------------------------------------------------------------------------------------------------------------------------

    编好boost后,将路径写到cmakelist文件后Configure成功了

    set(OpenCV_DIR "E:/Documents/Opencv/opencv/build_64")
    set(BOOST_INCLUDEDIR "E:/Documents/boost_1_67_0/boost_1_67_0")
    set(BOOST_LIBRARYDIR "E:/Documents/boost_1_67_0/boost_1_67_0/VC14/lib")

    但是generate时出错了:

     

    说是路径给错了,的确上面的"D:/Documents/Opencv/opencv/build2"路径是不存在的。找了半天才发现这个路径是设定在:opencv build目录下的OpenCVConfig.cmake文件里的:

    我编译opencv时是在这个路径,后来重装系统后磁盘名变了。当别的库依赖opencv时,cmake generate的时候会去这个文件里面找opencv相关的路径,所以会出错。

  • 相关阅读:
    Day15模块(导入,使用)
    day14 迭代器,生成器,函数的递归调用
    Day13有参装饰器,三元表达式,匿名函数
    re模块
    Day12装饰器
    subprocess模块windows系统命令和linux系统命令
    Day11名称空间,作用域,闭包函数
    识别 Linux上的设备(磁盘)类型
    Linux lsblk和df命令区别
    Linux远程拷贝scp
  • 原文地址:https://www.cnblogs.com/redips-l/p/9290985.html
Copyright © 2011-2022 走看看