---
title: 使能毕昇编译器
description: "使能毕昇编译器能够提升部分核心库的性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_kpimage_06_0013.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_kpimage_06_0013.html
indexId: 137b4d0acbd369c49af53c0ede0725b175bd76210e07318505f9c9cf2663e51580
---
# 使能毕昇编译器

使能毕昇编译器能够提升部分核心库的性能。

1. 请参见《毕昇编译器 用户指南(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/compilation/ug-bisheng/kunpengbisheng_06_0001.html)》安装毕昇编译器。
2. 验证毕昇编译器功能是否正常。

```
clang -v
```


  显示如上图所示信息，则表示正常。

3. 切换到“/home/software”目录下，修改安装中的build.sh文件。
  a. 设置编译器方式。将libwebp-1.2.1、libjpeg-turbo-1.5.2、giflib-5.1.4、libpng-1.6.38、GraphicsMagick-1.3.38、aom的编译命令中的编译器方式设置成毕昇编译器。
  b. 将libwebp-1.2.1、libpng-1.6.38、aom的编译器参数增加-flto=full和-mcpu=hip09，最后将以下修改后的代码保存到build-bisheng.sh脚本中。
    设置毕昇编译器方式： cmake：-DCMAKE_C_COMPILER=clang。 configure：CC=clang。 增加编译器参数方式： cmake：在-DCMAKE_C_FLAGS中添加。 configure：在CPPFLAGS中添加。 编译器参数解释： -mcpu=hip09：指定目标处理器的架构，生成针对该处理器的优化的代码。鲲鹏920新型号处理器可使用该参数，若CPU型号是鲲鹏920处理器，则不能使用。 -flto=full：启用完全模式的链接时优化。

```
#!/bin/bash
# 定义安装位置
rm -rf /opt/jdimg/*
JDIMG_PATH="/opt/jdimg" 
echo "$JDIMG_PATH/lib" > /etc/ld.so.conf.d/jdimg.conf
echo "$JDIMG_PATH/lib64" > /etc/ld.so.conf.d/jdimg_lib64.conf
export PKG_CONFIG_PATH="$JDIMG_PATH/lib/pkgconfig:$PKG_CONFIG_PATH"
pushd libwebp-1.2.1/ && rm -rf build && mkdir build && pushd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=$JDIMG_PATH -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_FULL_LIBDIR=/lib -DBUILD_SHARED_LIBS=ON -DCMAKE_VERBOSE_MAKEFILE=OFF -DCMAKE_C_FLAGS="-ffp-contract=off -flto=full -mcpu=hip09" -DCMAKE_C_COMPILER=clang .. && \
make -j8 && make install && popd && popd && \
pushd libjpeg-turbo-1.5.2 && chmod +x ./configure && rm -rf build && mkdir build && pushd build &&\
../configure --prefix=$JDIMG_PATH CC=clang CFLAGS="-O3 -ffp-contract=off" CPPFLAGS="-Wall -ffp-contract=off" && \
make -j8 && make install && popd && popd && \
pushd giflib-5.1.4/ && chmod +x ./configure && rm -rf build && mkdir build && pushd build && \
../configure --prefix=$JDIMG_PATH CC=clang CFLAGS="-O3 -ffp-contract=off" CPPFLAGS="-Wall -ffp-contract=off" && \
make -j8 && make install && popd && popd && \
pushd zlib-1.2.11 && chmod +x ./configure && rm -rf build && mkdir build && pushd build && \
../configure --prefix=$JDIMG_PATH && make -j8 && make install && popd && popd && \
pushd libpng-1.6.38 && chmod +x ./configure && rm -rf build && mkdir build && pushd build && \
../configure --prefix=$JDIMG_PATH LDFLAGS="-L$JDIMG_PATH/lib/ -lz -flto=full" CFLAGS="-g -O2 -ffp-contract=off -I$JDIMG_PATH/include" CPPFLAGS="-ffp-contract=off -mcpu=hip09 -flto=full" CC=clang && \
make -j8 && make install && popd && popd && \
pushd GraphicsMagick-1.3.38 && chmod +x ./configure && rm -rf build && mkdir build && pushd build && \
../configure --prefix=$JDIMG_PATH --disable-openmp --enable-shared --without-tiff --without-x LDFLAGS="-L$JDIMG_PATH/lib" CPPFLAGS="-I$JDIMG_PATH/include -ffp-contract=off " CC=clang CFLAGS="-g -Ofast -Wall -ffp-contract=off " && make -j8 && make install && popd && popd && \
pushd aom && rm -rf aom_build && mkdir aom_build && pushd aom_build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$JDIMG_PATH -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_FULL_LIBDIR=/lib -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=ON -DENABLE_EXAMPLES=ON -DENABLE_DOCS=OFF -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS="-Ofast -mcpu=hip09 -flto=full -ffp-contract=off -fPIC" -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-Ofast -mcpu=hip09 -flto=full -ffp-contract=off -fPIC" .. && make -j8 && make install && popd && popd && \
pushd SVT-AV1-v0.8.7/Build/linux && chmod +x ./build.sh && ./build.sh release shared install prefix=$JDIMG_PATH cc=gcc cxx=g++ && popd  && \
pushd libyuv && rm -rf build && mkdir build && pushd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$JDIMG_PATH -DCMAKE_CXX_STANDARD=11 -DBUILD_SHARED_LIBS=1 .. && make -j8 && make install && popd && popd  && \
mkdir -p $JDIMG_PATH/lib64 && cp $JDIMG_PATH/lib/libaom.so $JDIMG_PATH/lib64/ && pushd libavif-0.9.3 && rm -rf build && mkdir build && pushd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=$JDIMG_PATH -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_FULL_LIBDIR=/lib -DCMAKE_LIBRARY_ARCHITECTURE=ON -DBUILD_SHARED_LIBS=1 -DAVIF_CODEC_AOM=ON -DAVIF_CODEC_DAV1D=OFF -DAVIF_CODEC_LIBGAV1=OFF -DAVIF_CODEC_RAV1E=OFF -DAVIF_CODEC_SVT=ON -DAVIF_BUILD_EXAMPLES=OFF -DCMAKE_VERBOSE_MAKEFILE=OFF -DAVIF_BUILD_APPS=ON  -DDAV1D_INCLUDE_DIR=$JDIMG_PATH/include  -DCMAKE_C_FLAGS=" -fopenmp" .. && make -j8 && make install && popd && popd
```


4. 执行脚本，等待脚本执行完成。

```
sh build-bisheng.sh
```
