例如,如果我要将对象“example.o”链接到
-L/usr/X11R6/lib -L/usr/local/lib -lGL -lGLU -lm -lglut -lGLEW -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXcursor -lXinerama
并且输出的可执行文件编译得和仅链接时一样好(而且可以看出功能也一样好)
-lGL -lm -lglfw3
那么先前编译的过度链接如何影响最终用户的可执行文件(如果有的话)?加载/运行时间?对于较大的程序(了解“example.o”相当小)?
诚然,这个问题可能是为了我自己的启发。
最佳答案
如果您的编译器驱动程序默认将“--as-needed”选项传递给链接器,那么这对生成的二进制文件没有影响,因为链接器将删除不需要的库依赖项。
Debian wiki 对此有一篇详尽的文章:Debian DSO Linking .
关于c++ - 过多的链接/库会如何影响编译期间的可执行输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36957862/