首先确定节点上g++的版本,4.4.7用不了,4.8.2(k228)和4.8.5(k208, k211)的可以编译通过。
好像是4.8.0才开始支持C++11标准,因此前面的版本编译不了这个。
由于有些计算节点没有patch工具包(也有可能是环境没配置到patch,反正现在我还不会,可能有一天会顿悟)则./rebuild.sh里面的一句话
patch -s Make/options options
会报错说:
./rebuild.sh line 11: patch: command not found
因此,既然patch不了,则自己加一句话修改Make/options内容就行,将patch语句屏蔽掉。
#!/bin/bash
wmakeFilesAndOptions
for all in `ls *.cpp`;
do
sed -i '1i\'${all} Make/files
done
sed -i 's/$(FOAM_APPBIN)\///g' Make/files
# patch -s Make/options options.patch
echo -e "EXE_INC = -I/opt/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.3.x/src/meshTools/lnInclude -I/opt/OpenFOAM/OpenFOAM-2.3.x/src/finiteVolume/lnInclude\n\nEXE_LIBS = -lOpenFOAM -lmeshTools -lfiniteVolume" > Make/options