PJSIP应用程序链接错误

时间:2014-10-30 14:55:18

标签: linker cross-platform static-libraries linker-errors pjsip

我正在尝试使用PJSIP编写一个非常小的,非常简单的项目。但我已经坚持第一步,将PJSIP纳入我的项目中。我正在尝试使用arm-linux-gnueabihf-gcc交叉编译器在Ubuntu 14.04系统上构建和编译。对于编码本身,我使用Eclipse CDT,但交叉编译部分正常工作。

我将de pjproject-2.3文件夹下载到我的系统,使用以下命令配置它:

   ./configure --host=arm-linux-gnueabihf CFLAGS='--sysroot=/home/david/rpi/rootfs' LDFLAGS='--sysroot=/home/david/rpi/rootfs' 

/ home / david / rpi / rootfs文件夹是我复制Pi的根系统的地方。然后我跑去做了一个'和'制作'。我将所有静态库* .a复制到我的Eclipse项目文件夹,并将库添加到链接器(-l)。

但是当我想要构建时,我收到以下错误:

Invoking: Cross G++ Linker
arm-linux-gnueabihf-g++ -L"/home/david/workspace/VoIPBenchmark" -L/home/david/rpi/rootfs/usr/lib -L/home/david/rpi/rootfs/usr/lib/arm-linux-gnueabihf --sysroot=/home/david/rpi/rootfs/ -o "VoIPBenchmark"  ./src/SipImplemantation.o ./src/SipImplementationPJ.o ./src/Timer.o  ./main.o   -lpjsua2-arm-unknown-linux-gnueabihf -lpjsua-arm-unknown-linux-gnueabihf -lpjsip-ua-arm-unknown-linux-gnueabihf -lpjsip-simple-arm-unknown-linux-gnueabihf -lpjsip-arm-unknown-linux-gnueabihf -lpjsdp-arm-unknown-linux-gnueabihf -lpjmedia-audiodev-arm-unknown-linux-gnueabihf -lportaudio-arm-unknown-linux-gnueabihf -lpjmedia-codec-arm-unknown-linux-gnueabihf -lpjmedia-arm-unknown-linux-gnueabihf -lspeex-arm-unknown-linux-gnueabihf -lgsmcodec-arm-unknown-linux-gnueabihf -lsrtp-arm-unknown-linux-gnueabihf -lilbccodec-arm-unknown-linux-gnueabihf -lresample-arm-unknown-linux-gnueabihf -lpjnath-arm-unknown-linux-gnueabihf -lpjlib-util-arm-unknown-linux-gnueabihf -lpj-arm-unknown-linux-gnueabihf -lpthread -lm -lrt -lasound -llinphone
/home/david/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: /home/david/workspace/VoIPBenchmark/libsrtp-arm-unknown-linux-gnueabihf.a(ctr_prng.o)(.text+0x8c): unresolvable R_ARM_ABS32 relocation against symbol `ctr_prng'
/home/david/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make: *** [VoIPBenchmark] Error 1

我搜索了一些并试图在上面的./configure步骤中添加-fPIC,重新复制了库,但没有结果。有谁知道这条消息说的是什么,更好的是,知道解决方案吗?

1 个答案:

答案 0 :(得分:0)

此问题已得到解决。我使用的是一个也链接到srtp库的库,这显然是冲突的。所以我现在没有使用导致问题的库。