c++ - Why Clang++ doesn't run the global object constructor in another static library? -


we have library static_library.a build clang++, , there file bar.cpp include global object foo.

but when use library in app layer xcode project, global object foo constructor doesn't been called. (the global object constructor registration job, , impact app behavior.)

we think translation unit not linked executable file.

//bar.cpp in static_library.a class foo { public:    foo()    {        std::cout << " constructor called" << std::endl;    } };  foo a; // <------if function called in app layer project, // global constructor object called.  foo* getinstance()   {    return &a; } 

so there flag, can control behavior?

you need -all_load linker flag.

this question has more details. may interested in -objc or -force_load.


Popular posts from this blog

c# - ODP.NET Oracle.ManagedDataAccess causes ORA-12537 network session end of file -

matlab - Compression and Decompression of ECG Signal using HUFFMAN ALGORITHM -

utf 8 - split utf-8 string into bytes in python -