【问题标题】:GNU linker, the -l flag and implicit rulesGNU 链接器、-l 标志和隐式规则
【发布时间】:2014-01-25 12:23:01
【问题描述】:

我正在摆弄 GCC,试图了解链接的各种可能性。

这些是我的问题:

  1. 假设我有两个文件tools.ctools.h,我创建了一个档案libtools.a(包含tools.o)。

    现在我有一些prog.c,一个包含tools.h 并使用它的一些功能的程序。

    以下命令是否等效?

    gcc -Wall prog.c libtools.a -o prog

    gcc -Wall prog.c -ltools -o prog

  2. 关于-l 标志(不幸的是man ld 并没有多大用处):

    一个。什么是隐式模式匹配规则? -lX 表示“找到名为 libX.a 的文件”

    b. -l 除了懒惰地查找库(我猜与 1 密切相关)之外,在链接过程中是否有任何真正的重要性?

    c。如何链接名为 lib.atools.paz 的库?

【问题讨论】:

    标签: c gcc ld


    【解决方案1】:

    使用 -l 动态链接,使用静态链接的文件名。我建议您阅读 ld 的手册页,其中详细解释了所有这些。

    【讨论】:

    猜你喜欢
    • 2017-09-26
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多