技术文章
Nektar++ 5.1 编译
指定 GCC / MPI 包装器,Boost 和 TinyXML 用系统库,避免第三方重复编崩。
源码:Nektar++ GitLab。路径按 /opt/software/nektar 示例。
sudo apt update
sudo apt install -y flex bison libboost-all-dev libtinyxml-dev
git clone https://gitlab.nektar.info/nektar/nektar.git /opt/software/nektar
cd /opt/software/nektar
git tag
git checkout v5.1.0
rm -rf build
mkdir build && cd build
原文 clone 地址有时会写成 .g 截断,要用完整的 .git。先 git tag 看有哪些版本,再 checkout。
CMake 里的编译器、MPI、Boost、TinyXML、zlib 路径改成本机实际位置。现场一次用的是 gcc-11 和配套 MPI,命令还在,路径不要照抄:
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=/usr/bin/gcc-11 \
-DCMAKE_CXX_COMPILER=/usr/bin/g++-11 \
-DTHIRDPARTY_BUILD_BOOST=OFF \
-DBOOST_ROOT=/usr \
-DNEKTAR_USE_FFTW=ON \
-DTHIRDPARTY_BUILD_FFTW=ON \
-DNEKTAR_USE_MPI=ON \
-DMPI_C_COMPILER=mpicc \
-DMPI_CXX_COMPILER=mpicxx \
-DNEKTAR_USE_TINYXML_STL=ON
make -j$(nproc)
make install
没有 gcc-11 时改成系统里实际的 gcc / g++。mpicc / mpicxx 也改成本机 MPI 包装器。Boost 和 TinyXML 用系统库,避免第三方重复编崩。
export PATH=/opt/software/nektar/build/dist/bin:$PATH
可执行文件目录以 make install 的 prefix 为准。