【问题标题】:cross compile c program for android为android交叉编译c程序
【发布时间】:2015-07-05 18:52:59
【问题描述】:

我有一个使用 -lpcap、-lm 和 -lpthread 的 c 程序。我在 /usr/arm-linuxgnueabi/lib/ 中看到了这些库。但是,如果我使用命令编译

arm-linux-gnueabi-gcc -static *.c -L/usr/arm-linux-gnueabi/lib/ -lpcap -lm -lpthread -o dumps/forandroid

它给出了以下错误:

/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find crt1.o: No such file or directory<br>
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find crti.o: No such file or directory<br>
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lpcap<br>
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lm<br>
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lpthread
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lc<br>
collect2: error: ld returned 1 exit status

我怎样才能正确地给出库路径?我正在尝试为运行 android 5.1 的 android 模拟器编译程序。我正在使用 mint 17.2 64 位 AMD 机器。

【问题讨论】:

    标签: android linux gcc cross-compiling


    【解决方案1】:

    我使用 ndk 工具链解决了这个问题。我为 arm-linux 编译了 libpcap 并使用了该库。以下命令完成了这项工作:

    arm-linux-androideabi-gcc --sysroot=/home/shahrear/Android/ndk/platforms/android-21/arch-arm -fpie -fpic -I./pcap -I. *.c -L./lib -pie -lm -lpcap -o dumps/forandroid
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多