--start-group 和 --end-group 命令行选项是什么?
这些命令行选项的目的是什么?请帮助破译以下命令行的含义:
-Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib
显然它与链接有关,但 GNU 手册并没有说明分组的确切含义。
What is the purpose of those command line options? Please help to decipher the meaning of the following command line:
-Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib
Apparently it has something to do with linking, but the GNU manual is quiet what exactly grouping means.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它用于解决多个库之间的循环依赖(在
-(
和-)
之间列出)。引用 为什么链接库的顺序有时会导致 GCC 中出现错误? 或 <代码>man ld http://linux.die.net/man/1/ld
因此,组内的库可以多次搜索新符号,并且您不需要像
-llib1 -llib2 -llib1
这样丑陋的结构PS 存档基本上意味着静态库(
*.a< /代码> 文件)
It is for resolving circular dependences between several libraries (listed between
-(
and-)
).Citing Why does the order in which libraries are linked sometimes cause errors in GCC? or
man ld
http://linux.die.net/man/1/ldSo, libraries inside the group can be searched for new symbols several time, and you need no ugly constructs like
-llib1 -llib2 -llib1
PS archive means basically a static library (
*.a
files)