【问题标题】:build error on Android: "error: undefined reference to 'pthread_setname_np'"在 Android 上构建错误:“错误:对‘pthread_setname_np’的未定义引用”
【发布时间】:2015-11-10 08:48:50
【问题描述】:

编译Openh264时总是遇到构建错误:

libopenh264.a(WelsThreadLib.o):WelsThreadLib.cpp:function WelsThreadSetName: error: undefined reference to 'pthread_setname_np'

如何解决?

【问题讨论】:

    标签: android android-ndk java-native-interface openh264


    【解决方案1】:

    如果您构建的 OpenH264 面向 Android 版本 >= 9 (2.3),但尝试链接您自己的面向旧版本的共享库,则会出现此错误。您需要构建 OpenH264 目标至少与您自己的应用程序目标的旧版本一样。

    【讨论】:

    • 我只是使用NDK-BUILD 开始构建。那么如何构建版本呢?
    • 它从jni/Application.mkAndroidManifest.xml 中选择构建应用程序代码的版本。此外,对于 OpenH264,您可以在构建时选择一个版本,例如make OS=android NDKLEVEL=3(默认为 9)。
    • jni/Application.mk应该设置哪个属性?
    • 在这种情况下,在jni/Application.mk中设置APP_PLATFORM := android-9;那么它应该避免这个问题。如果您的应用程序实际上应该在低于该版本的 Android 版本上运行,则需要重新构建 OpenH264 以改为以较低版本为目标。
    • jni/Application.mk 中设置APP_PLATFORM := android-15 后对我来说效果很好。所以接受并支持答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2022-11-09
    • 2014-08-22
    相关资源
    最近更新 更多