首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系列文章(二)| VS2013-MPI v7-静态编译-Boost1.6.1

系列文章(二)| VS2013-MPI v7-静态编译-Boost1.6.1

作者头像
点云PCL博主
发布2019-07-30 16:07:36
7280
发布2019-07-30 16:07:36
举报
文章被收录于专栏:点云PCL点云PCL

这是系列文章的第2/7篇

1.VS2013-Qt5.5.1-动态编译-VTK7.0.0

2. VS2013-MPI v7-静态编译-Boost1.6.1

3.VS2013-编译-Qhull2015.2

4.VS2013-编译-FLANN1.8.4

5.VS2013-编译-Eigen3.2.8

6.OpenNI2.2.0.33下载和安装

7. VS2013-Qt5.5.1-VTK7.0.0-Boost1.6.1-Qhull2015.2-FLANN1.8.4-Eigen3.2.8-OpenNI2.2.0.33-动态编译-PCL1.8.0

此次编译Boost1.6.1,采用VS2013,在X64下编译debug和release两个版本,所依赖的MPI版本是7.0.12437.6版.

1

下载Microsoft MPI v7

编辑这篇文章时,最新的MPI发布版是7.0.12437.6版.

msmpisdk.msi和MSMpiSetup.exe都需要下载.

2

安装Microsoft MPI v7

msmpisdk.msi和MSMpiSetup.exe都需要安装,最好默认安装.前者会默认安装到C:\Program Files (x86)\Microsoft SDKs\MPI;后者会默认安装到C:\ProgramFiles\Microsoft MPI;并会自动设置环境变量.

3

下载Boost

Boost官网主页(https://www.boost.org/)列出的就是最新版本的boost库源码,官方不提供预编译版本.

Version 1.61.0(https://www.boost.org/users/history/version_1_61_0.html)和Release Notes(https://www.boost.org/users/history/version_1_61_0.html)链接到同一个页面,该页面提供了源码下载,也提供了跳转到第三方网盘的链接(有预编译版本).Download(https://sourceforge.net/projects/boost/files/boost/1.61.0/)跳转到第三方网盘(提供源码下载).

这个页面其实是当前版本Boost库的完整发布说明,包含documentation链接,Download链接,Third Party Downloads链接,New Libraries(当前版本新增加的库)说明,UpdatedLibraries(当前版本更新的库)说明,Compilers Tested说明等.如下图:

download跳转到第三方网盘如下图,随便下载哪个都一样,只是压缩格式不同而已。

4

.解压Boost

解压Boost,本文解压到下列路径:

找到D:\Boost\1.6.1\Src\boost_1_61_0\tools\build\src\tools\mpi.jam文件,修改mpi.jam文件如下:

注:boost项目对微软的MPI似乎很久没管了,所以需要修改一下相关参数,才能正确应用MS-MPI

5

打开

VS2013 x64 Native Tools Command Prompt

本文使用VS2013,编译64位的boost.

切换到boost源码目录,cd /d “D:\Boost\1.6.1\Src\boost_1_61_0”

执行bootstrap.bat,如下图:

等一会儿后,生成四个文件如下:

b2.exe,bjam.exe这两个exe作用是一样的,bjam.exe是老版本,b2是bjam的升级版本.

b2 --help 查看帮助,非常有用.

6

打开project-config.jam

添加using mpi ;如下图:

注意;左右都有空格

7

编译并安装

b2 --toolset=msvc-12.0 address-model=64 --build-dir="I:\build\boost" install --prefix="D:\Boost\1.6.1\msvc2013_64"--without-graph_parallel --without-python -j8

b2.exe toolset=msvc-12.0 address-model=64--build-dir=build\x64 install --prefix="E:\杨帆文件\软件\PCL文件\boost\1.6.1\msvc2013_64"-j8

各个参数什么意思,b2 --help说得很清楚.大部分参数都可以使用默认值,所以只指定了有必要修改的几个参数.

address-model=64必须要,就算是用X64命令行,依然要加这个参数才OK.编译32位用address-model=32.不加这个参数,默认是32.--help里面并没有提到这个参数.

--without-graph_parallel是因为这个模块编译一直出错,所以干脆不编译它了.

--without-python是因为单纯地不想要python.

-j8是并行编译线程数.

注:bjam在编译过程中,出错不会停下来,而是直接跳过出错的模块,除非加参数让其遇错停下.而且是边编译边安装.

测试时用的参数,直接无视就好

b2--toolset=msvc-12.0 address-model=64 --build-dir="I:\build\boost"stage --stagedir="I:\build\boost" --without-graph_parallel--without-python -j8 -q

可以用dumpbin去检查lib/dll是X86还是X64

dumpbin/headers *.lib | findstr machine

dumpbin/headers *.dll | findstr machine

间接确定某个lib是静态还是动态[会显示其它信息或者对应的dll]

dumpbin/headers *.lib

直接确定某个lib是静态还是动态[会列出包含的obj或者对应的dll]

lib /list*.lib

8

Boost安装目录分析

[include]文件夹装的是包含目录,D/R版本的内容完全一样.

[lib]文件中,装的都是staticlib文件,D/R版本各有34个lib.

lib一一对应,但内容不一样.

控制台编译,没有生成PDB.

因为是静态编译,所有没有dll,也没有[bin]文件夹.

静态编译通常没有PDB.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档