3
我正在嘗試構建MEX模塊,但是我遇到了未定義符號的運行時問題。這裏是輸出由於未定義符號導致的MEX文件無效
Invalid MEX-file '/home/glperez/issm/trunk-jpl/lib/TriMesh.mexa64':
/home/glperez/issm/trunk-jpl/lib/libISSMCore.so: undefined symbol: _ZN14ToolkitOptions14toolkitoptionsE
Error in triangle (line 40)
[elements,x,y,segments,segmentmarkers]=TriMesh(domainname,riftname,area);
Error in test101 (line 1)
md=triangle(model(),'../Exp/Square.exp',50000.);
檢查在 'libISSMCore.so' 符號印證了未定義的符號
$ nm ./lib/libISSMCore.so | grep 'toolkit'
U _ZN14ToolkitOptions14toolkitoptionsE
然而,符號出現在 'TriMesh.mexa64':
$ nm ./lib/TriMesh.mexa64 | grep 'toolkit'
00000000002391b8 b _ZN14ToolkitOptions14toolkitoptionsE
據我瞭解,小寫字母'b'表示該符號位於未初始化的部分,並且它是本地對全局。
這裏的問題與符號是本地的,未初始化的還是別的什麼有關?
當您構建'TriMesh'時,您是否嘗試鏈接'libISSMCore.so'?如果你顯示編譯步驟,這將有所幫助。 – Amro