[英]GNU linker, the -l flag and implicit rules
我在摆弄GCC,试图了解链接的各种可能性。
这些是我的问题:
假设我有两个文件tools.c
和tools.h
,我创建了一个归档文件libtools.a
(包含tools.o
)。
现在,我有了一些prog.c
,它是一个包含tools.h
并使用其某些功能的程序。
以下命令等效吗?
gcc -Wall prog.c libtools.a -o prog
gcc -Wall prog.c -ltools -o prog
关于-l
标志(不幸的是, man ld
没什么用):
一种。 隐式模式匹配规则是什么? -lX的意思是“找到名为libX.a的文件” ?
b。 除了懒惰地查找库(我猜与1密切相关)之外, -l
在链接过程中是否还有任何真正的重要性?
C。 如何链接名为lib.a
或tools.paz
的库?
使用-l可以动态链接,可以使用静态链接的文件名。 我建议您阅读ld的手册,其中详细解释了所有这些内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.