4

我正在使用 automake,并获得这样的 libtool 调用:

/bin/sh ../libtool --tag=CC --mode=link gcc -o test_foo test_foo.o -lA -lB -lC -lA -lB -lC

请注意,这些库(我无法控制)具有循环依赖关系,需要多次提及它们。不幸的是,似乎 libtool 将对库的多个请求折叠成一个请求,并且它运行:

gcc -o test_foo test_foo.o -lA -lB -lC

请注意,对库的第二次遍历已经消失;我收到一堆链接器错误。当我手动运行带有额外-l标志的 gcc 命令行时,它可以工作。

如何让 libtool 将我请求的所有库传递给 gcc?

4

1 回答 1

6

如何让 libtool 将我请求的所有库传递给 gcc?

我不知道该怎么做。但是请注意,如果您在使用 GNU-ld(或 gold)的系统上,您可以使用

-Wl,--start-group -lA -lB -lC -Wl,--end-group

也许 libtool 会让这些不受干扰?唉,libtool 2.2.6b-Wl,--end-group在所有库之前移动;-(

这个粗俗的黑客做到了:

-Wl,--start-group,-lA,-lB,-lC,--end-group

(我发现libtool99% 的情况都是错误的,并尽量避免它像瘟疫一样。)

于 2012-04-07T18:43:54.977 回答