【问题标题】:Provide fallback symbol for dynamic linking为动态链接提供后备符号
【发布时间】:2017-03-27 11:08:41
【问题描述】:

当动态链接一个库时,有一种方法可以指定一个备用符号,以防加载时缺少一个。

例如编译 MEX 文件而不是 mxCreateNumericArray 我想调用 mxCreateUninitNumericArray(具有相同的签名)。但后者不会出现在较旧的 MATLAB 版本中。 mxArrayToStringmxArrayToUTF8String 相同。

对于 MSVC,我已经能够使用 /DELAYLOAD 并在 dliFailGetProc 上挂钩到 __pfnDliFailureHook2 以提供简单的映射。但是我可以在基于 Unix 的系统上做什么呢?

如何以类似的方式挂钩libld

【问题讨论】:

标签: ios linux gcc ld dynamic-linking


【解决方案1】:

我无法连接到动态链接器,但提供弱符号帮助我解决了这个问题:

extern "C"
char * __attribute__ ((weak)) mxArrayToUTF8String( mxArray const * array )
{
  return mxArrayToString( array ) ;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-15
    • 2017-03-11
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2015-04-05
    • 1970-01-01
    相关资源
    最近更新 更多