当动态链接一个库时,有一种方法可以指定一个备用符号,以防加载时缺少一个。
例如编译一个 MEX 文件而不是 mxCreateNumericArray
我想调用 mxCreateUninitNumericArray
(具有相同的签名)。但后者不会出现在较旧的 MATLAB 版本中。 mxArrayToString
和 mxArrayToUTF8String
相同。
对于 MSVC,我已经能够使用/DELAYLOAD 并 Hook 到 dliFailGetProc
上的 __pfnDliFailureHook2
以提供简单的映射。但是我可以在基于 Unix 的系统上做什么呢?
如何以类似的方式 Hook 到libld
?
我无法连接到动态链接器,但提供弱符号帮助我解决了这个问题:
extern "C"
char * __attribute__ ((weak)) mxArrayToUTF8String( mxArray const * array )
{
return mxArrayToString( array ) ;
}
关于ios - 为动态链接提供后备符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43044727/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |