几天前对OpenOFAM的源文件修改,添加自己函数。在OpenFOAM/src/xxx的文件修改前,拷贝了一份原文件目录:
cp -r xxxfile xxxfile.org
然后在该xxxfile目录中修改文件,增加函数myfunc_,然后wmake生成库没有问题,但是OpenFOAM/sol编译时下却无法链接该库的myfunc_函数,报错 undefined reference to xxxfunc_, 反复清理wclean和wmake均没有作用。
后来使用strings 命令查看库文件:
strings $FOAM_LIBBIN/libxxxx.so |grep myfunc_
没有搜索到结果,该函数确实没有在库中。
此时错误表明修改文件并没有被编译,编译还是之前的文件,因此将备份的原文件目录,移出当前路径:
mv xxxfile.org ../.
然后重新编译:
wclean
wmake
使用strings 查看该库文件,发现搜索到结果,修改文件已经生效,函数存在。此时再编译求解器链接该函数则成功。