【问题标题】:Building .so file for OpenH264 android为 OpenH264 android 构建 .so 文件
【发布时间】:2015-09-04 13:01:23
【问题描述】:

我正在尝试为 OpenH264 中的不同 cpu 架构构建 .so 文件。

OpenH264 的 README.md 建议

add "ARCH=mips" or "ARCH=x86". To build for the older armeabi ABI (which has
armv5te as baseline), add "APP_ABI=armeabi" (ARCH=arm is implicit).

所以我触发了以下命令

对于 x86

make os=android NDKROOT=/home/neosoft/android-ndk-r10d/ ARCH=x86 TARGET=android-12

我得到了类似的东西

/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [libopenh264.so] Error 1

当我尝试用 armeabi 构建它时

make os=android NDKROOT=/home/neosoft/android-ndk-r10d/ ARCH=armeabi TARGET=android-12

我明白了

cc -O3 -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -DLINUX -MMD -MP  -Icodec/common/arm/ -march=armv7-a -mfpu=neon -Icodec/api/svc -Icodec/common/inc   -c -o codec/common/arm/copy_mb_neon.o codec/common/arm/copy_mb_neon.S
cc: error: unrecognized command line option ‘-mfpu=neon’
make: *** [codec/common/arm/copy_mb_neon.o] Error 1

谁能告诉我如何为不同的 cpu 架构编译这个库。

【问题讨论】:

    标签: android android-ndk openh264


    【解决方案1】:

    对于 linux :
    一种。首先运行这个命令

    export PATH=ANDROID_SDK_PATH/tools:$PATH
    

    b.现在为 x86 ARCH 运行它。

     make install os=android NDKROOT=/home/neosoft/android-ndk-r10d TARGET=android-14 ARCH=x86 
    

    对于其他 Arch,只需通过替换 ARCH 类型来运行它

    make os=android NDKROOT=/home/neosoft/android-ndk-r10d TARGET=android-14 ARCH=armeabi 
    

    对于 Windows:
    a.安装 MinGW(https://www.youtube.com/watch?v=DHekr3EtDOA)。
    乙。在 MinGW/bin 文件夹中安装 MYSY。
    c.在 MinGW/bin/1.0/bin 文件夹中安装 nasm。
    d.转到 MinGW\bin\1.0\ 位置并运行 msys.bat。
    e.通过替换 ARCH 类型运行以下命令。

    make install os=android NDKROOT=/home/neosoft/android-ndk-r10d TARGET=android-14 ARCH=x86 
    

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 1970-01-01
      • 2020-11-02
      • 2023-04-03
      • 2023-04-02
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      相关资源
      最近更新 更多