gcc自动方法来确定依赖库的顺序

时间:2017-09-21 06:43:01

标签: gcc linker ld

众所周知,当使用gcc将目标链接到一系列库时,我们需要为编译器(gcc)提供链接库的正确顺序。例如:

源文件 a.cpp 取决于libb.a,libc.a和libd.a。

libb.a 取决于libc.a和libd.a。

因此,编译命令应为

g++ a.cpp -o a libb.a libc.a libd.a

此外,我们不能颠倒b和c之间或b和d之间的顺序。通常,我们必须手动确定所有链接库的顺序。 当然,还有一些方法可以绕过这个问题。我们可以添加

-Wl,--start-group $(LIBRARIES_YOU_NEED) -Wl,--end-group 

所以ld可以自己弄清楚顺序。但是,我想知道自己链接库的顺序。

因此,考虑到源文件所需的所有库,是否有任何自动方法对库进行排序,以便在将它们放入gcc命令行时它们之间的依赖关系是正确的?

0 个答案:

没有答案