我需要在项目中加入libexplain
才能完成某些工作。我安装了它,并将标题libexplain/read.h
添加到我的代码中,到目前为止一切正常,编译器未报告任何错误。但是,当我使用explain_read()
提供的功能libexplain
并构建项目时,它说:
/tmp/cc7NjAw0.o: In function `xl45_read(int, unsigned char*)':
connections.cpp:(.text+0x2f): undefined reference to `explain_read'
collect2: error: ld returned 1 exit status
生成脚本为:
#!/bin/bash
echo > ./stdafx.h
g++ -O1 -Wall -o ./local_proxy (*.cpp...here is the source file list) -lz -lpthread -lpcap -L/usr/local/lib
实际上当我键入
whereis libexplain
在航站楼,我得到了
libexplain: /usr/lib/libexplain.so /usr/lib/libexplain.a /usr/include/libexplain
我进行了很多搜索,但仍然不知道出了什么问题。 ):
最佳答案
您需要使用libexplain
链接目标文件。您可以使用-l<library name>
进行操作,如下所示:
g++ -O1 -Wall -o ./local_proxy *.cpp -lz -lpthread -lpcap -lexplain -L/usr/local/lib
请注意
-lexplain
标志。对于文件名为libABC.so
的库,可以使用-lABC
引用该库。 documentation for link options with GCC可以为您提供更多信息。