gcc编译链接.a文件

时间:2011-05-06 22:08:02

标签: gcc linker compilation

在我的作业中,我必须使用此命令编译我的程序:

gcc -o mtm_rentals -std = c99 -Wall -pedantic-errors -Werror -DNDEBUG mtm_ex2.c rental.c list.c -L -lmtm

我能改变的是我在-DNDEBUG之后写的文件。当我这样做时,gcc说有特定功能的未定义引用。现在这些函数在.h文件中声明,并在名为libmtm.a的给定文件中实现 我得出结论,它不承认libmtm.a,但我们的家庭作业任务说-lmtm标志(未在任何地方声明)应该将libmtm.a链接到程序。

我在这里失踪了什么?我应该以某种方式实现-lmtm标志? 谢谢!

1 个答案:

答案 0 :(得分:3)

您在.后面缺少-L(单点)。

-lmtm会链接到libmtm库,这是正确的。它不是-lmtm标志,它是与-l连接的mtm标记,即您要链接的库。在一些预定义的路径(如/usr/lib/)中搜索此库,另外在-L给出的路径中搜索。假设libmtm存在于您当前的目录中,您需要将其添加到-L,这是通过.完成的。