On Jun 28, 2016, at 2:48 PM, Chris Hanson wrote:

> On Jun 24, 2016, at 9:16 PM, Marco S Hyman <m...@snafu.org> wrote:
> 
>> Building a library, step 1:
>> compile a bunch of .c, .m, .cc, .whatever files into .o files
>> 
>> Building a library, step 2:
>> Link all the .o files created in step 1 into a .a file
> 
> This is subtly incorrect.
> 
> On UNIX systems, step 2 is typically:
> 
> Archive all the .o files created into step 1 into a .a file
> 
> Unless configured specially, a static library on UNIX systems is typically 
> just an archive of *un-linked* .o files. They are neither linked against the 
> frameworks and libraries against which they were built, nor linked against 
> each other. All linkage (again, unless configured specially) happens at the 
> time the .a is used to produce a final linked product such as an executable, 
> bundle, or dylib.
> 
> This can result in surprises when there are linkage requirements that aren't 
> satisfied by a downstream consumer of the .a file.
> 
> -- Chris

I just got this same build warning again today on a completely different 
project where we suddenly have 900 warnings that the library we are linking to 
was built for 9.3, but the app linking to it is expecting 7.0.  



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (Xcode-users@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to