我正在摆弄海湾合作委员会,试图了解各种联系的可能性。
这是我的问题:
假设我有两个文件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的文件”?
湾-l
在链接过程中是否具有任何真正的重要性,除了懒惰地找到库(与我猜的密切相关)?
℃。如何链接名为lib.a
或tools.paz
?
答案 0 :(得分:0)
使用-l动态链接,使用静态链接的文件名。我建议你阅读ld的联机帮助页,它详细解释了这一切。