---
title: 使用oneAPI 2021编译Boost 1.78
description: "1. 执行以下命令生成b2文件。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengfaq/productfaq/hpcfaq/hpc_faq_0015.html
sourcePath: /source/zh/kunpengfaq/productfaq/hpcfaq/hpc_faq_0015.html
indexId: 959950ce1b395dbcfd8289e56b689f51aa9115abeb343821281b167923ce797557
---
# 使用oneAPI 2021编译Boost 1.78

1. 执行以下命令生成b2文件。

```
./bootstrap.sh -prefix=
<Boost安装路径>
```


2. 修改intel-linux.jam文件。

  a. 打开intel-linux.jam文件。

```
vi tools/build/src/tools/intel-linux.jam
```


  b. 按“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'。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
3. 修改memory.hpp文件。

  a. 打开memory.hpp文件。

```
vi boost/asio/detail/memory.hpp
```


  b. 按“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'。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 修改project-config.jam文件。

  a. 打开project-config.jam文件。

```
vi project-config.jam
```


  b. 按“i”进入编辑模式，在文件最末尾添加如下内容。

```
using mpi : mpiicpc ;
```


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

  c. 按“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
```
