我需要在项目中加入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可以为您提供更多信息。

10-08 14:09