关于调用 库函数的报错



  • 将湍流模型和求解器成功编译到自己的库中,然后在算例system/controlDict中加入如下命令进行调用,如下:

    libs  ("libkOmegaMHD.so");
    

    但是运行算例会报如下错误,显示未定义的符号,以及后面divDevRhoReff这个可压缩函数,和GeometricField、fvPatchField、volMesh、Vector这几个,并无法加载调用湍流模型,关键是湍流模型已经已经编译通过了,,,
    Create time

    --> FOAM Warning : 
    From function dlOpen(const fileName&, const bool)
    in file POSIX.C at line 1179
    dlopen error : /home/kdd/OpenFOAM/kdd-2.3.1/platforms/linux64GccDPOpt/lib/libkOmegaMHD.so: undefined symbol: _ZNK4Foam14incompressible9RASModels9kOmegaMHD13divDevRhoReffERKNS_14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEERNS3_INS_6VectorIdEES4_S5_EE
    --> FOAM Warning : 
    From function dlLibraryTable::open(const fileName&, const bool)
    in file db/dynamicLibrary/dlLibraryTable/dlLibraryTable.C at line 99
    could not load "libkOmegaMHD.so"
    Create mesh for time = 0


  • 这个问题已经解决了,整理一下发个帖出来,哈哈!


  • 教授

    @一颗鸭蛋 编译自定义湍流模型时链接libincompressibleRASModel应该就可以了。



  • 是我C文件里少了divDEVRhoReff 这个函数的具体实现,悲伤自己不是学计算机的.......



  • 我也遇到了这个问题!解决的怎么样啦??求教呀



  • @一颗鸭蛋 我也遇到同样的问题,我修改了komegaSST湍流模型,编译通过了,但是打开paraFoam的时候出现类似报错如下
    41abbf30-5951-4d30-8265-5ffe9ddcff05-image.png
    请问你最后怎么解决的呢?



  • 我当时是由于湍流模型虽然编译通过但其实还是有问题的,具体就是H文件申明的虚函数divDevRhoReff,在C文件中没有具体的实现。你可以根据H文档最后几个虚函数(virtual函数)再好好对照一下看看C文档中是否都有对应的具体实现。其次我是2.3.1版本。


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1