gcc:链接库在同一文件夹中作为源文件

时间:2016-06-22 14:40:14

标签: c linux unix gcc

我正在尝试使用 gcc 编译 C 项目。所有源文件和.a库文件都在的同一文件夹中。如何成功编译项目?

enter image description here

我试过了:

gcc -o test main.c IPT.c logitem_list.c -L -./ -libpt

但我接受了错误:

/usr/bin/ld: cannot find -libpt
collect2: error: ld returned 1 exit status

2 个答案:

答案 0 :(得分:5)

您可以将目录指定为-L和'核心'名称为-l

gcc -o test main.c IPT.c logitem_list.c -L . -lpt

当给定-l pt 时,链接器会查找libpt.alibpt.so或等价物(.dylib或{{其他平台上的{1}}或.sl.dll

.lib建议链接器查找名为' dash dot'的目录,该目录不太可能存在,并且无论如何都找不到-L -./

答案 1 :(得分:1)

因为它是一个静态库,你也可以很容易地直接在命令行上指定文件。请记住,静态库只是目标文件的索引存档:

gcc -o test main.c IPT.c logitem_list.c ./libpt.a

您也可以使用共享库执行此操作,但您可能不应该这样做。