我们有一个由clang ++构建的库static_library.a
,并且有一个文件bar.cpp
包含一个全局对象Foo
。
但是当我们在App层Xcode项目中使用库时,却没有调用全局对象Foo
构造函数。 (全局对象构造函数将执行一些注册工作,并影响应用程序行为。)
我们认为翻译单元没有链接到可执行文件中。
//bar.cpp in static_library.a
class Foo
{
public:
Foo()
{
std::cout << " constructor called" << std::endl;
}
};
Foo a;
// <------If this function is called in the App layer project, the
// global constructor object will be called.
Foo* getInstance()
{
return &a;
}
那么有没有可以控制这种行为的旗帜?