【FreeFEM】从入门到精通——一、 FreeFEM安装与常见问题

安装

0、一些准备工作
  • 为centos添加存储库,防止找不到一些依赖包
sudo yum install –y epel-release
sudo yum-config-manager --enable epel

EPEL (Extra Packages for Enterprise Linux) 是 Fedora 团队的一个开源和免费的基于社区的存储库项目,它为 Linux 发行版提供 100% 高质量的附加软件包,包括 RHEL (Red Hat Enterprise Linux)、CentOS Stream 、AlmaLinux 和 Rocky Linux。

  • 下载FreeFEM源码
    • FreeFEM官网 https://freefem.org/
    • git clone https://github.com/FreeFem/FreeFem-sources.git
1、安装依赖库
  • Ubuntu
sudo apt-get install libgsl-dev libhdf5-dev             liblapack-dev libopenmpi-dev freeglut3-dev bison flex patch perl
  • Centos
sudo yum install gsl-devel hdf5-devel lapack-devel openmpi-devel freeglut bison flex patch perl
2、安装FreeFEM
  • 进入FreeFEM安装包目录
cd FreeFem-sources
  • 自动配置,生成configure文件
autoreconf -i
  • 配置configure文件
./configure --enable-download --enable-optim     --prefix=/where/you/want/to/have/files/installed 
  • 下载FreeFEM依赖的第三方包
./3rdparty/getall -a
  • 构建FreeFEM库和可执行文件
make -j<nbProcs> 
make -j<nbProcs> check
  • 检查完成后安装可执行文件
make install
3、将可执行目录添加到系统path中
  • 直接在命令行输入,只对当前会话有效
export PATH=/where/you/installed/bin:$PATH
  • 修改用户目录下的.profile文件,只对该用户有效
# 通过vim等方式在文件中合适位置添加
export PATH=/where/you/installed/bin:$PATH
# 退出编辑文件在命令行输入
source ~/.profile
  • 修改/etc/profile文件,在/etc/profile文件的适当位置添加,对所有用户生效
# 通过vim等方式在文件中合适位置添加
export PATH=/where/you/installed/bin:$PATH
# 退出编辑文件在命令行输入
source /etc/profile

QA、报错解决

  • error:can’t locate Digest/MD5.pm in @INC(@INC contains : … 安装arpack时遇到错误在这里插入图片描述

    yum -y install perl-Digest-MD5
    附:手动安装arpack https://blog.csdn.net/Kuang2016/article/details/106648285

  • error:configure: error: cannot guess build type; you must specify one 安装nlopt时遇到错误,没有指定build的体系结构系统在这里插入图片描述

    进入nlopt目录下,指定 ./configure --build=aarch64-unknown-linux,然后再make && sudo make install

  • error: ‘for’ loop initial declarations are only allowed in C99 mode note: use option -std=c99 or -std=gnu99 to compile your code
    gcc支持的C89,不能在for循环条件里面定义参数,在源程序中将定义的语句提前就行

  • error:unresolvable R_AARCH64_ADR_PREL_PGHI21 relocation against symbol `stderr@@GLIBC_2.17’ 一些库报错against symbol ‘xxx’,这个是一些编译的冲突,需要在报错的库文件来源进行重新编译在这里插入图片描述
    在报错的库文件源文件内编译选项添加 -fPIC,编译完后进入要安装的软件目录重新make