使用oneAPI 2021编译Boost 1.78
- 执行以下命令生成b2文件。
./bootstrap.sh -prefix=<Boost安装路径>
- 修改intel-linux.jam文件。
- 打开intel-linux.jam文件。
vi tools/build/src/tools/intel-linux.jam
- 按“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'。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开intel-linux.jam文件。
- 修改memory.hpp文件。
- 打开memory.hpp文件。
vi boost/asio/detail/memory.hpp
- 按“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'。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开memory.hpp文件。
- 修改project-config.jam文件。
- 打开project-config.jam文件。
vi project-config.jam
- 按“i”进入编辑模式,在文件最末尾添加如下内容。
using mpi : mpiicpc ;
若未修改,则将会跳过MPI库构建。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开project-config.jam文件。
- 安装Boost,请用户根据实际情况替换Boost安装路径。
./b2 install -prefix=<Boost安装路径> cxxstd=17 toolset=intel-linux link=shared address-model=64 architecture=x86 runtime-link=shared
父主题: 开源使能