android-studio - 带有 NDK : link error : undefined reference to 'stderr' 的安卓工作室

标签 android-studio gradle android-ndk

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

现在,我正尝试通过 Android Studio 中的 CMakeLists.txt 文件将我的 native 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
...

取自 Changelog.md 的 NDK 版本:r17b

编辑 2:

按照 Dan 的建议,我添加了

"-DANDROID_PLATFORM=android-24"

cmake 参数

最佳答案

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

关于android-studio - 带有 NDK : link error : undefined reference to 'stderr' 的安卓工作室,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51767214/

相关文章:

android - 在 build.gradle 上设置最大 sdk 版本

android - 使用Gradle构建android项目时遇到问题(多个dex文件)

android - JaCoCo gradle 插件排除

java - 安卓 JNI 错误 : Call function with boolean argument causes a crash

android - 为 Android NDK 编译 C++11 源代码

linux - ./studio.sh 后的 Android Studio UI 错误

java - 由 : java. lang.NullPointerException 引起:lock == null

android - Android-Studio错误:链接引用失败

java - 将模块添加到我的 Android 应用程序时出现 DuplicateFileException

c - 安卓NDK : Issues with variable