我有一堆C ++代码,我想从Matlab调用。我将代码编译成一个共享库,创建一个小的mex接口,并在链接到.so时用mex编译它。
基本上,我有一个带
的CMake文件add_library(mylibrary SHARED <dependencies>)
我用
编译(optionally export CXX=clang++); cmake ..; make
并使用
调用mexmex -lmylibrary [...]
如果用g ++编译原始代码,这可以正常工作。但是,如果我尝试使用clang ++(完全相同的标志等),mex编译仍然运行良好,但在尝试在matlab中调用该函数时,我得到错误
Invalid MEX-file '<path_to_file>.mexa64': dlopen: cannot load any more object with static TLS
这显然不是一个很大的问题,因为我可以使用g ++,但如果可能的话,我更喜欢使用clang,因为编译速度要快得多,而且警告/错误更好。