boost库编译配置

  • 要利用boost库写一个异步的网络框架,一开始boost库编译安装一直都是参照别人的博客,所以这篇文章之前都是链接引用。后来想着写完之后可能还需要迁移,又需要boost库的配置,所以还是自己写一下,记一下编译时的参数和问题。

Windows下的配置

下载解压boost库代码
  • 在boost官网上下载boost库Windows版本,写本文的时候boost库已经发布了1.70版本,本文采用了boost 1.68版本。 boost库历史版本下载链接:https://www.boost.org/users/history/
  • 下载完成后将boost库解压到一个文件夹,后续编译时需进入该文件夹
编译前准备
  • 本次编译使用的工具是VS2017,不同版本的VS在后续编译的命令行中参数是不同的
  • 打开“适用于 VS 2017 的 x64 本机工具命令提示”这个工具。一般在开始菜单中的Visio studio文件夹中可以找到,这个是适用64位机器的,如果是32位机器则选择带X86的。
  • 在这个命令行窗口中,进入刚刚解压的boost文件夹,运行boostrap.bat文件,进行编译环境准备。完成之后会在这个目录下生成b2.exe 、bjam.exe 、project-config.jam 、bootstrap.log四个文件。其中,b2.exe 、bjam.exe 这两个exe作用是一样的,bjam.exe 是老版本,b2是bjam的升级版本。 准备成功后是如下的样子
    在这里插入图片描述
使用bjam(或b2)来编译boost
  • 本次编译使用的命令如下:

b2 stage --toolset=msvc-14.1 --without-graph --without-wave --without-math --without-regex --stagedir=“D:\boost_1_68_0” link=static runtime-link=shared threading=multi debug release

  • 参数分析:
  1. toolset:指定编译器。由于我们使用的是VS2017,故版本为14.1。不同的VS版本这个是不一样的,编译前最好查一下。
  2. 其他参数:https://blog.csdn.net/u013255206/article/details/82592745
VS中的配置
  • 添加boost库安装目录到环境变量,假设为{BOOST_ROOT}
  • 在C++常规选项中“附加包含目录”中加入:
$(BOOST_ROOT);$(PYTHON_ROOT)\include;
  • 在链接器常规选项中“附加库目录”中加入:
$(PYTHON_ROOT)/libs;$(BOOST_ROOT)/$(Platform)/lib;
  • 如果想要使用boost中的python模块,还需要将python根目录添加到VS中。我们也可以将python根目录设为{PYTHON_ROOT},然后按照上边的方式添加到VS中。如果要指定python的版本,在编译时可以添加命令行选项 include=”对应python版本根目录“。
遇到的问题
  • 有时候编译时失败,一般是msvc的版本没有选对
  • 在VS中使用boost编译时提示缺少库,一般是静态或动态的编译方式有问题

Linux下的配置

https://blog.csdn.net/this_capslock/article/details/47170313

遇到的错误:
  • pyconfig.h: No such file or directory
    这个问题主要是两个部分,一个是没有安装python3-devel依赖,另一个是编译的时候需要导入它
    第一部分:安装python-devel,opensuse下使用zypper install python-devel,
    这样安装的是python2版本的,python3的则为python3-devel
    第二部分:编译时使用命令行导入见此篇博客:https://codeday.me/bug/20180123/123332.html

猜你喜欢

转载自blog.csdn.net/lianggx6/article/details/87902415