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