可以用同一个库连接两次是g ++的问题吗?

时间:2010-02-17 16:37:14

标签: c++ gcc g++

我注意到当我使用gcc创建应用程序并在链接阶段查看输出时,我看到以下lib包含两次:

/home/rb01/opt/trx-HEAD/gcc/4.2.4/lib /../ lib64下/的libstdc ++。这样

所以我只是想知道这是g ++(gcc)的问题,还是第二个被忽略了?

谢谢!

1 个答案:

答案 0 :(得分:7)

如果库中的符号已经解析,则链接器会忽略它们。对于共享库,就像在这种情况下一样,链接器实际上并不实际链接。

对于静态(.a)库,命令行上的多个副本实际上可能很有用,如果不是很漂亮,例如主访问libb访问libc,libc访问libb中某些东西不能访问的东西:

ld main.o -lb -lc -lb

是解决所有引用的一种方法。