On 16 February 2012 12:55, HvW wrote: > > Hi, > > I have a library called Lib_Crc to compute the CRC of certain memory areas. > This is used by another library called Lib_Appcfg which performs certain > configuration checking and verification. > > My application "Test" needs to use both Lib_Crc functions and Lib_Appcfg > function in order to perform its tasks. > > Why do I need to link both Lib_Crc and Lib_Appcfg in my application to use > the Lib_Crc functions? Won't the symbols be available to the application > form the Lib_AppCfg library? > > I have tried several linking options including -shared and -export-dynamic > in multiple orders and arrangements, but in all cases when linking is done > on the application, it complains that the Lib_Appcfg says that the Lib_Crc > functions are "undefined references". To fix this I include Lib_Crc in my > app. > > Any comments, suggestions or explanations will be appreciated. The answer depends what platform you're using which you didn't say, and isn't really a GCC question, it's about the linker. You also haven't shown your linker commands or the actual error messages you're getting, which prevents anyone giving an accurate answer. For GNU/Linux if you link Lib_AppCfg to Lib_Crc it should have a DT_NEEDED tag, which will cause the dynamic linker to load Lib_Crc when starting the application.