当前位置: 技术问答>linux和unix
调用库的时候,出现undefined reference to
来源: 互联网 发布时间:2017-04-06
本文导语: 情况是这样的。 我现在有一个库,是别人的开发的,编译后生成libpcap_f.a。我用ar -t查看如下: [root@suowenair server]# ar -t libpcap_f.a bonree_dump.o event.o http_file.o network_dump.o port_table.o ssl_file.o tcp_connection.o thread_mix.o ...
情况是这样的。
我现在有一个库,是别人的开发的,编译后生成libpcap_f.a。我用ar -t查看如下:
我自己写的另一个程序调用这个库
但是却出现了
我已经引用了该库,但是还是出现这种错误,不理解。我自己开发的程序并且也包含了libpcap_f.a这个库的接口的头文件。
我现在有一个库,是别人的开发的,编译后生成libpcap_f.a。我用ar -t查看如下:
[root@suowenair server]# ar -t libpcap_f.a
bonree_dump.o
event.o
http_file.o
network_dump.o
port_table.o
ssl_file.o
tcp_connection.o
thread_mix.o
我自己写的另一个程序调用这个库
但是却出现了
server.o: In function `MsgProc::Proc_e_msg_httpData()':
server.cc:(.text+0xa5c): undefined reference to `bonree::EventListenerMaunal::Next()'
server.o: In function `MsgProc::CloseAdaptor()':
server.cc:(.text+0xf48): undefined reference to `bonree::BonreeDump::Stop()'
server.cc:(.text+0xf64): undefined reference to `bonree::BonreeDump::~BonreeDump()'
server.o: In function `MsgProc::OpenAdaptor()':
server.cc:(.text+0x1174): undefined reference to `bonree::BonreeDump::BonreeDump()'
server.cc:(.text+0x11a0): undefined reference to `bonree::EventListenerMaunal::EventListenerMaunal()'
server.cc:(.text+0x11fc): undefined reference to `bonree::BonreeDump::RegisterListener(bonree::EventListener*)'
server.cc:(.text+0x125c): undefined reference to `bonree::BonreeDump::Start(std::vector const*)'
我已经引用了该库,但是还是出现这种错误,不理解。我自己开发的程序并且也包含了libpcap_f.a这个库的接口的头文件。
|
-L. -lpcap_f参数必需放在gcc参数中的最后..不能放在前面.
|
gcc加上-lpcap_f参数, -L路径 (即libpcap_f.a的路径)
|
注意要把 -lpcap_f 放在靠后的位置。
g++ -o server server.o -lpcap_f
如果用下面的命令
g++ -lpcap_f -o server server.o
就会出现楼主描述的问题
undefined reference to `bonree::BonreeDump::BonreeDump()'
g++ -o server server.o -lpcap_f
如果用下面的命令
g++ -lpcap_f -o server server.o
就会出现楼主描述的问题
undefined reference to `bonree::BonreeDump::BonreeDump()'