cor*_*zza 8 c++ compiler-construction linker compilation g++
我创建了一个包含在.a文件中的简单静态库.我可能会在各种项目中使用它,其中一些项目根本不需要90%的项目.例如,如果我想在AVR微型计算机上使用神经网络(我的库的一部分),我可能不需要其他一些东西,但是在我的代码中是否会链接可能产生一个相当大的文件?
我打算编译这样的程序:
g++ myProg.cpp myLib.a -o prog
G++ 只会从库中提取所需的目标文件,但这意味着如果使用单个目标文件中的一个符号,则该目标文件中的所有内容都会添加到可执行文件中。
一个源文件变成一个目标文件,因此只有当确定需要将它们放在一起时才将它们逻辑地组合在一起才有意义。
这种做法因编译器(实际上是链接器)而异。例如,微软链接器将把目标文件分开,只包含那些实际需要的部分。