你可以强制从静态库链接未引用的代码吗?

时间:2010-07-13 15:56:16

标签: c++ cocoa linker

这是场景 - 我创建了一个自定义的NSView子类,并且实现在静态库中。该类永远不会从最终的可执行文件中引用,只能从Interface Builder XML文件中引用。由于它没有被引用,因此它不会在链接时被包含,因此在运行时无法找到该类。

有没有办法强制将其链接到其他感谢链接中,或者直接将类编译成可执行文件本身?

3 个答案:

答案 0 :(得分:1)

您可以在其上使用class类方法,该方法主要是无操作方法,但会从您的代码中引用它。

int main(int argc, const char** argv)
{
    [MyClass class]; // There you are! MyClass is now referenced from your code.

    /* ... rest of your main function ... */
}

答案 1 :(得分:0)

尝试使用-all_load或-force_load标志。请参阅以下帖子中的评论:

What does the -all_load linker flag do?

答案 2 :(得分:-1)

如何在可执行文件中创建指向违规类的指针?这应该强制它,不需要你分配内存等。