Dependent Origination

Posts Tagged ‘modules

This is a follow up to the previous post about multiple definitions during linking. In it, we used inline so the functions will disappear from symbol table and no linker complain. When it comes to string literals, it is apparent that we cannot just define them in the header file — there is no way of taking them out from the symbol table and it is inevitable for the multiple definitions error. However, we can move the definition to the implementation file and leave an extern declaration in the header file. This way, the linker won’t complain — at the place of reference, the header file is inlcuded, which has the extern declaration so the compiler is happy. The actual definition (and storage allocation, entering into symbol table etc) happens in the implementation file, which if we compile it into a separate library, will only be introduced once by the smart linker.

Problem solved. Old school way.

Advertisements

August 2019
M T W T F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031  

Twitter

Flickr Photos

Advertisements