鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

使用oneAPI 2021编译Boost 1.78

  1. 执行以下命令生成b2文件。
    ./bootstrap.sh -prefix=<Boost安装路径>
  2. 修改intel-linux.jam文件。
    1. 打开intel-linux.jam文件。
      vi tools/build/src/tools/intel-linux.jam
    2. 按“i”进入编辑模式,修改文件第277行。
      修改前:
      actions compile.c++.pch
      {    
          rm -f "$(<)" && LD_LIBRARY_PATH="$(RUN_PATH)" "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -pch-create "$(<)" "$(>)"
      }

      修改后:

      actions compile.c++.pch
      {
          rm -f "$(<)" && LD_LIBRARY_PATH="$(RUN_PATH)" "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -Xclang -emit-pch -o "$(<)" "$(>)"
      }
      • 执行2.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。
      • 若未修改intel-linux.jam文件,将会在编译Boost 1.78时报此错误:clang++: error: unsupported argument 'h-create' to option '-pc'。
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  3. 修改memory.hpp文件。
    1. 打开memory.hpp文件。
      vi boost/asio/detail/memory.hpp
    2. 按“i”进入编辑模式,修改文件第88行。

      修改前:

      void* ptr = std::aligned_alloc(align, size);

      修改后:

      void* ptr = aligned_alloc(align, size);
      • 执行3.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。
      • 若未修改memory.hpp文件,将会在编译Boost 1.78时报此错误:no member named 'aligned_alloc'。
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 修改project-config.jam文件。
    1. 打开project-config.jam文件。
      vi project-config.jam
    2. 按“i”进入编辑模式,在文件最末尾添加如下内容。
      using mpi : mpiicpc ;

      若未修改,则将会跳过MPI库构建。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  5. 安装Boost,请用户根据实际情况替换Boost安装路径。
    ./b2 install -prefix=<Boost安装路径> cxxstd=17 toolset=intel-linux link=shared address-model=64 architecture=x86 runtime-link=shared