代码之家  ›  专栏  ›  技术社区  ›  Olivier MATROT

Android Studio with NDK:链接错误:未定义对“stderr”的引用

  •  0
  • Olivier MATROT  · 技术社区  · 8 年前

    我已经编译了针对android armeabi-v7a的OpenCV静态库。

    现在我试图通过Android工作室中的CMAKLISTS.TXT文件链接我的本地C++代码和那些库,但是这个奇怪的错误失败了:

    ~/opencv/modules/videoio/src/container_avi.cpp:0: error: undefined reference to 'stderr'
    

    此代码来自libopencv_videoio.a

    CMakeLists.txt文件的中断部分是

    # linking with static libraries
    target_link_libraries(native-lib
         dnn ml objdetect shape stitching superres videostab calib3d features2d highgui videoio imgcodecs video photo imgproc flann core
    )
    

    不是应该自动找到标准库吗?

    编辑1: 下面是我的Application.mk

    ...
    NDK_TOOLCHAIN_VERSION := clang
    APP_PLATFORM := android-21
    APP_STL := c++_shared
    ...
    

    NDK版本取自Changelog.md:r17b

    编辑2:

    正如丹所建议的,我补充说

    “-DANDROID_平台=安卓-24”

    对于cmake论点

    1 回复  |  直到 8 年前
        1
  •  1
  •   Dan Albert    8 年前

    最有可能的情况是,您为android-23+构建了opencv,但是native lib的minSdkVersion低于此。见 https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#using-mismatched-prebuilt-libraries .

    推荐文章