我正在尝试使用 gcc 编译 C 项目。所有源文件和.a库文件都在的同一文件夹中。如何成功编译项目?
我试过了:
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
答案 0 :(得分:5)
您可以将目录指定为-L
和'核心'名称为-l
:
gcc -o test main.c IPT.c logitem_list.c -L . -lpt
当给定-l
pt
时,链接器会查找libpt.a
或libpt.so
或等价物(.dylib
或{{其他平台上的{1}}或.sl
或.dll
。
.lib
建议链接器查找名为' dash dot'的目录,该目录不太可能存在,并且无论如何都找不到-L -./
。
答案 1 :(得分:1)
因为它是一个静态库,你也可以很容易地直接在命令行上指定文件。请记住,静态库只是目标文件的索引存档:
gcc -o test main.c IPT.c logitem_list.c ./libpt.a
您也可以使用共享库执行此操作,但您可能不应该这样做。