使用Clang为mex编译共享库 - >无法使用静态TLS加载任何更多对象

时间:2015-04-15 23:13:47

标签: c++ matlab clang mex

我有一堆C ++代码,我想从Matlab调用。我将代码编译成一个共享库,创建一个小的mex接口,并在链接到.so时用mex编译它。

基本上,我有一个带

的CMake文件
add_library(mylibrary SHARED <dependencies>)

我用

编译
(optionally export CXX=clang++); cmake ..; make

并使用

调用mex
mex -lmylibrary [...]

如果用g ++编译原始代码,这可以正常工作。但是,如果我尝试使用clang ++(完全相同的标志等),mex编译仍然运行良好,但在尝试在matlab中调用该函数时,我得到错误

Invalid MEX-file '<path_to_file>.mexa64': dlopen: cannot load any more object with static TLS

这显然不是一个很大的问题,因为我可以使用g ++,但如果可能的话,我更喜欢使用clang,因为编译速度要快得多,而且警告/错误更好。

0 个答案:

没有答案