flang编译安装
flang安装问题与解决办法
flang简单使用
flang简介
Flang是一个用于与LLVM集成的Fortran前端,具有与Clang C ++和LLVM一致的开放源代码许可,并且适合在各种系统中与Clang / LLVM进行部署和互操作。
llvm+flang安装
安装前的说明:此安装方法全程不需要管理员权限,用户可自行安装在自己目录下。
0. 环境要求
cmake | >=3.4.3 |
gcc | >=5.1.0 |
python | >=2.7 |
zlib | >=1.2.3 |
GNU Make | >=3.7.9 |
1. 安装准备
创建目录并定义cmake 编译选项。这里我们选择将所有都安装在install目录下。
cd /where/you/want/to/build/flang
mkdir install
这里我们编写一个setup.sh,来存储编译选项。我们指定了一个自定义安装位置,并且通常希望使用clang为X86进行构建。-DCMAKE_INSTALL_PREFIX即为安装位置。
INSTALL_PREFIX=`pwd`/install
# Targets to build should be one of: X86 PowerPC AArch64
CMAKE_OPTIONS="-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DLLVM_CONFIG=$INSTALL_PREFIX/bin/llvm-config \
-DCMAKE_CXX_COMPILER=$INSTALL_PREFIX/bin/clang++ \
-DCMAKE_C_COMPILER=$INSTALL_PREFIX/bin/clang \
-DCMAKE_Fortran_COMPILER=$INSTALL_PREFIX/bin/flang \
-DLLVM_TARGETS_TO_BUILD=X86"
2. 安装llvm
我们依旧选择编写一个shell来安装llvm。
下面是build-llvm.sh。先从GitHub上获取release70的llvm,后在build目录下进行编译安装。这里我们使用gcc和g++作为c和c++的编译器,其位置在/usr/bin。你需要根据自己的gcc和g++位置来指定他们。
. ./setup.sh
if [[ ! -d llvm ]]; then
git clone https://github.com/flang-compiler/llvm.git
(cd llvm && git checkout release_70)
fi
cd llvm
# Use local GCC to bootstrap LLVM
mkdir -p build && cd build
cmake $CMAKE_OPTIONS -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ ..
make -j$(nproc)
make install
3. 安装flang-driver
依旧使用gcc和g++来进行编译。此步骤安装了clang编译器,安装完成后,我们可以在install/bin目录下看到clang、clang++。安装的clang为7.1.0版本。细心一点,我们还可以发现flang的快捷方式,打开后发现其指向clang。
. ./setup.sh
if [[ ! -d flang-driver ]]; then
git clone https://github.com/flang-compiler/flang-driver.git
(cd flang-driver && git checkout release_70)
fi
# Use local GCC to bootstrap flang-driver
cd flang-driver
mkdir -p build && cd build
cmake $CMAKE_OPTIONS -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ ..
make -j$(nproc)
make install
4. 安装openmp
此步骤开始,我们使用clang,clang++来编译。
. ./setup.sh
if [[ ! -d openmp ]]; then
git clone https://github.com/llvm-mirror/openmp.git
(cd openmp && git checkout release_70)
fi
cd openmp
mkdir -p build && cd build
cmake $CMAKE_OPTIONS ..
make -j$(nproc)
make install
5. 安装flang
终于,我们可以安装flang了!废话不多说,先上build_flang.sh
. ./setup.sh
if [[ ! -d flang ]]; then
git clone https://github.com/flang-compiler/flang.git
fi
(cd flang/runtime/libpgmath
mkdir -p build && cd build
cmake $CMAKE_OPTIONS ..
make -j$(nproc)
make install)
cd flang
mkdir -p build && cd build
cmake $CMAKE_OPTIONS ..
make -j$(nproc)
make install
注意到,在此过程中,我们需要进行两次编译。第一次是在flang/runtime/libgmath/目录下,第二次是在flang目录下。
6. 路径设置
安装完成后,我们需要配置环境变量。
打开bashrc
vim ~/.bashrc
添加如下语句:
export PATH=/where/your/flang/install/bin:$PATH
export LD_LIBRARY_PATH=/where/your/flang/install/lib:$LD_LIBRARY_PATH
重启之后,就可以使用了。