条件弱链接符号修改/重新声明

时间:2013-07-31 12:27:06

标签: c++ ios c llvm weak-linking

我有以下弱联系声明:

extern __attribute__((visibility ("default"))) Type* const symbolName __attribute__((weak_import));

问题是,符号可能定义也可能不定义,具体取决于操作系统。

所以,当我使用它func(symbolName);时,我得到一个信号11崩溃,因为我正在尝试取消引用null。我可以问if(&symbolName != NULL) { func(symbolName); },但这需要每个使用此符号的人都记得问这个问题,这不是最佳的。

我正在寻找一些巫术魔法来有条件地修改或重新声明此符号,只有在不可用的情况下,才能拥有我的func可以使用的默认值。

我知道这是一个丑陋的解决方案,不建议使用。在这一点上,我只是想知道是否有办法做到这一点,无论多么丑陋或低级别。

0 个答案:

没有答案