为什么必须使用force_load使我的可执行文件运行?

时间:2018-12-06 14:12:15

标签: xcode macos linker

在Xcode 7中,没有将force_load传递给链接器,我得到了一个紧凑的二进制文件(〜5MB)。

但是,当我运行它时,某些全局初始化代码根本不会被调用。初始化的形式为:

<beginning of cppfile>
#include "Register.h"
namespace
{
    bool bResult = Register(etc...);
}

<class member functions from now on> 

奇怪的是,正在调用某些完全相同样式的初始化。

如果我与force_load链接,则一切正常,但是二进制文件大小增长到60MB ...

我宁愿使用紧凑的二进制文件并修复初始化。诀窍是什么?

0 个答案:

没有答案