当前位置: 技术问答>linux和unix
无法连接静态库??
来源: 互联网 发布时间:2015-01-01
本文导语: 当前目录进行编译,./lib为库目录, 目录中用 ar r 编译了libvoipsound.a libvoipcommon.a libvoiprtp.a三个静态库 编译执行码出错: gcc -I. -I./lib/incl -I./incl -L./lib -lvoipsound -lvoipcommon -lvoiprt p -o sample sample.c /tmp/cc5S4jQC.o:...
当前目录进行编译,./lib为库目录,
目录中用 ar r 编译了libvoipsound.a libvoipcommon.a libvoiprtp.a三个静态库
编译执行码出错:
gcc -I. -I./lib/incl -I./incl -L./lib -lvoipsound -lvoipcommon -lvoiprt
p -o sample sample.c
/tmp/cc5S4jQC.o: In function `allexit':
/tmp/cc5S4jQC.o(.text+0x13b): undefined reference to `udp_CloseUdp'
/tmp/cc5S4jQC.o(.text+0x140): undefined reference to `sound_funDeviceStop'
/tmp/cc5S4jQC.o: In function `main':
/tmp/cc5S4jQC.o(.text+0x382): undefined reference to `udp_OpenInfo'
/tmp/cc5S4jQC.o(.text+0x39e): undefined reference to `udp_CloseUdp'
/tmp/cc5S4jQC.o(.text+0x3bd): undefined reference to `sound_funInitDeviceRead'
/tmp/cc5S4jQC.o(.text+0x417): undefined reference to `udp_ReceivePacket'
/tmp/cc5S4jQC.o(.text+0x446): undefined reference to `sound_funInitDeviceRead'
/tmp/cc5S4jQC.o(.text+0x4b3): undefined reference to `sound_funGrab'
其中出错的都是些函数,都是在libvoipsound.a和libvoiprtp.a中,在sample.c中对
这些函数进行了调用,为什么编译不可以呢?请高手指点。
gcc 2.96
redhat 7.3
目录中用 ar r 编译了libvoipsound.a libvoipcommon.a libvoiprtp.a三个静态库
编译执行码出错:
gcc -I. -I./lib/incl -I./incl -L./lib -lvoipsound -lvoipcommon -lvoiprt
p -o sample sample.c
/tmp/cc5S4jQC.o: In function `allexit':
/tmp/cc5S4jQC.o(.text+0x13b): undefined reference to `udp_CloseUdp'
/tmp/cc5S4jQC.o(.text+0x140): undefined reference to `sound_funDeviceStop'
/tmp/cc5S4jQC.o: In function `main':
/tmp/cc5S4jQC.o(.text+0x382): undefined reference to `udp_OpenInfo'
/tmp/cc5S4jQC.o(.text+0x39e): undefined reference to `udp_CloseUdp'
/tmp/cc5S4jQC.o(.text+0x3bd): undefined reference to `sound_funInitDeviceRead'
/tmp/cc5S4jQC.o(.text+0x417): undefined reference to `udp_ReceivePacket'
/tmp/cc5S4jQC.o(.text+0x446): undefined reference to `sound_funInitDeviceRead'
/tmp/cc5S4jQC.o(.text+0x4b3): undefined reference to `sound_funGrab'
其中出错的都是些函数,都是在libvoipsound.a和libvoiprtp.a中,在sample.c中对
这些函数进行了调用,为什么编译不可以呢?请高手指点。
gcc 2.96
redhat 7.3
|
可能与你的链接顺序有关,-o sample sample.c,放到-lvoipsound -lvoipcommon -lvoiprtp之前试试。
|
呵呵,用gcc一般都是gcc -o xxx xxx.c -lxxxx
|
-lxxx,不要写成-lxxx.a 试试。
|
用gcc -o test test.c libvoipcommon.a
|
如果你确定你的函数已经在这些库中,那么把lvoipsound -lvoipcommon -lvoiprtp在编译命令行中多写几遍就可以了,呵呵