Boost1.67编译+CMake Generate时遇到的一个错误

Posted redips

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:\\Documents\\boost_1_67_0\\boost_1_67_0\\VC14" threading=multi --build-type=complete –-build-dir="E:\\Documents\\boost_1_67_0\\boost_1_67_0\\build"
    

    参数含义参考 链接

  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相关的路径,所以会出错。

 

以上是关于Boost1.67编译+CMake Generate时遇到的一个错误的主要内容,如果未能解决你的问题,请参考以下文章

boost 1.67编译VS2017版本

强制 CMake 寻找 x64 位库而不是 x32

Boost union 在 1.67 中不起作用,但在 1.61 中起作用。为啥?

编译报错:“error: vendor/qcom/proprietary/chi-cdk/core/lib/common/g_pipelines.h was not generat”

编译报错:“error: vendor/qcom/proprietary/chi-cdk/core/lib/common/g_pipelines.h was not generat”

编译报错:“error: vendor/qcom/proprietary/chi-cdk/core/lib/common/g_pipelines.h was not generat”