global objects in a static library not exported
John R Pretz
john.pretz@gmail.com
Fri Aug 28 20:19:00 GMT 2009
Ian,
I'll give it a whirl. It worked perfectly on my little test.
Thanks,
John
On Fri, Aug 28, 2009 at 8:07 AM, Ian Lance Taylor<iant@google.com> wrote:
> John R Pretz <john.pretz@gmail.com> writes:
>
>> I'm attaching an example showing off my question. The executable is
>> built two ways. In the first way, it is build via a static library to
>> which the final executable is linked. In the second way, the object
>> files are just all compiled together skipping the library. There is a
>> global object (in global_object.cc) which I want to get created before
>> main() starts and it does not work if I build the executable by
>> linking against the static library.
>
> This is standard Unix linker behaviour for archives.
>
>> If anybody has any insight into how to make this work, I'd appreciate
>> it. is there some linker flag to get these unreferenced global
>> objects created?
>
> You use the --whole-archive option to direct the linker to pull in every
> object from an archive. You would normally use --whole-archive around
> th archives you want to pull in entirely, ending with
> --no-whole-archive.
>
> Ian
>
More information about the Gcc-help
mailing list