OpenFAST | 搭建编译环境(RedHat/CentOS 7)

糟糕,OpenFAST 编译环境已经设置完毕。
当时我很难做到这一点。
我们应该在 2 01 9 年启动一个相关项目。
我全权负责建立项目团队环境。
这是一件大事。

首先我需要升级 gcc 软件包。
CentOS7 系统自带的GCC版本很旧,不支持C++1 7 我很着急。
我需要升级到版本 7 .5 ,支持 C++1 7 并使用 g++ 和 gfortran 编译器对我来说很重要。

然后我从官方渠道下载了GCC7 .5 源码包并上传到服务器。
文件大小有数十兆字节。
紧接着,我下载了gmp6 .1 .0、mpc1 .0.3 、mpfr3 .1 .4 、isl0.1 6 .1 等很多依赖包。
这些都是GCC编译所需要的。
我必须确保他们都没有丢失。

拿到依赖包后,我开始创建Makefile。
这是使用 gcc 源目录中的配置脚本完成的。
我必须确保它支持C、C++和Fortran等语言,否则下一组就会出现问题。

然后我使用以下命令编译GCC7 .5 这一步需要使用多线程加速来提高效率。
当时我一下子就开了十、二十个线程,效率非常高。

编译成功后,我使用以下命令进行安装。
此步骤需要 root 权限。
安装完后,检查了版本,gcc --version、g++ --version、gfortran --version,全部更新了。

但是,新安装的GCC7 .5 也可能会生成新的动态库。
我需要更新动态库libstdc++.so.6 以确保系统可以正确加载这些库。
环境更新完成后,我需要更新用户环境变量,并将新安装的GCC7 .5 bin目录添加到PATH中,以便可以在终端中直接使用gcc、g++和gfortran。

最后,我必须测试编译器。
我写了一个简单的C、C++和Fortran程序,用新安装的GCC7 .5 编译并运行它,看看它是否正常工作。
经过这一系列的手术后,我感到非常疲惫。

如果你现在想一想,如果只使用现成的 Docker 容器或一些自动化脚本就好了,但当时的情况并非如此。
唉,这个环境建设确实是一次痛苦的经历。

OpenFAST | 搭建编译环境(RedHat/CentOS 7)

是的,就是升级GCC版本的问题。
CentOS7 默认为4 .8 ,所以需要使用7 .5 来编译OpenFAST。

先下载源码,然后上传到服务器。
所需依赖包:gmp、mpc、mpfr、isl,必须下载。

生成Makefile,记得选择c、c++、fortran支持。

多线程编译,root安装。

检查版本并更新 libstdc++.so.6
更新环境变量,用户环境也必须改变。

最后,我测试了编译器,它运行没有任何问题。
你自己看看吧。

CentOS7下编译安装MapnikMapnik编译教程

上周,一位客户向我询问他在安装Mapnik时遇到的问题。
我仔细阅读了他的证言,以下是一些常见问题:
首先,这位客户在编译安装Mapnik时遇到了内存不足的问题。
当时它只有2 GB内存,而官方要求至少5 GB内存,所以在编译过程中出现了内存不足的情况。
解决方案是增加交换磁盘空间。
具体操作为:
bash sudo dd if=/dev/none of=/swapfile bs=6 4 M count=1 6 须藤 mkswap /交换文件 sudo swapon / 交换文件
编译完成后记得恢复原来的状态:
bash sudo swapoff / 交换文件 sudo rm/交换文件
然后他遇到了 Harfbuzz 无法找到的编译问题。
解决办法是更改配置文件,直接指定HB_LIBS和HB_INCLUDES:
bash HB_INCLUDES=/usr/local/Cellar/harfbuzz/0.9 .3 5 _1 /include
然后它在尝试mapnik时遇到动态库加载错误。
解决方案是更改ld.so.conf文件并添加Mapnik库的路径:
bash vim /etc/ld.so.conf.d/mapnik-x8 6 _6 4 .conf
添加行:
bash /usr/local/lib
然后你会做:
bash 须藤 ldconfig
最后,他尝试运行demo,却发现生成的图像有问题。
这可能是由于Mapnik的配置或数据源有问题,需要进一步检查。

不知何故,你可以看到。
如果您还有其他问题,请随时问我。
我还在想这个。