dlib / dlib-android在OSX上构建时在运行时崩溃
dlib / dlib-android crashes at runtime when built on OSX
我目前正在尝试构建和使用dlib-android库,该库旨在将dlib移植到Android上。建设是成功的;但是当在相应的演示项目 DLIB-android-app 中使用编译好的共享C++库时,当开始通过 JNI 调用库函数时,应用崩溃。
对于我在本地执行的任何构建,在 OSX 或 Debian 上使用任意 NDK 版本,都会发生此运行时崩溃。但是,无法使用包含在dlib-android-app项目中的dlib-android的预构建版本重现崩溃。此外,项目维护者表示他无法重现该问题。
哪些因素可能导致我的本地构建在两个不同的操作系统上出错,而项目维护人员可以使用相同的代码库和构建过程创建功能构建?全局编译器标志是否会导致此问题?
资源
- 图书馆: https://github.com/tzutalin/dlib-android
-
演示应用:https://github.com/tzutalin/dlib-android-app
-
GitHub 问题,包括更多信息:https://github.com/tzutalin/dlib-android/issues/13
堆栈跟踪
backtrace:
#00 pc 000372dc /system/lib/libc.so (tgkill+12)
#01 pc 00014719 /system/lib/libc.so (pthread_kill+52)
#02 pc 00015337 /system/lib/libc.so (raise+10)
#03 pc 00011bd1 /system/lib/libc.so (__libc_android_abort+36)
#04 pc 00010044 /system/lib/libc.so (abort+4)
#05 pc 0046a103 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__gnu_cxx::__verbose_terminate_handler()+226)
#06 pc 00433dc9 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__cxxabiv1::__terminate(void (*)())+4)
#07 pc 00433e3d /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (std::terminate()+8)
#08 pc 00433f61 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__cxa_throw+120)
#09 pc 00150a9c /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::compress_stream_kernel_1<dlib::entropy_encoder_model_kernel_5<257ul, dlib::entropy_encoder_kernel_2, 200000ul, 4ul>, dlib::entropy_decoder_model_kernel_5<257ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>, dlib::crc32>::decompress(std::istream&, std::ostream&) const+544)
#10 pc 00150478 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::get_serialized_frontal_faces()+63512)
#11 pc 00140654 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::get_frontal_face_detector()+44)
#12 pc 0013544c /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (DLibHOGFaceDetector::det(cv::Mat const&)+236)
#13 pc 000e8d30 /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (Java_com_tzutalin_dlib_PeopleDet_jniBitmapFaceDect+868)
有几个关于这个(类似)问题的相关帖子:C++ Snow Leopard X代码中的调试版本中断Xcode 3.2.1 和C++字符串失败!
当运行 Python build_push.py 时 - 它将构建
ret = subprocess.call(['ndk-build', '-j4', 'NDK_LOG=1', 'NDK_DEBUG=1', 'V=0'])
这意味着构建调试版本(在此处描述)
NDK_DEBUG=1 强制进行可调试的构建(请参阅表 1)。
NDK_DEBUG=0 强制发布版本(请参阅表 1)。
考虑将脚本更改为 NDK_DEBUG=0 build_push.py
相关文章:
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- C++具有移动语义的可变参数工厂会导致运行时崩溃
- 使用数组的单向链表:它在运行时崩溃
- "Unable to open file libc++abi.dylib" .程序生成,但在运行时崩溃。使用 xcode 10.1 (10B61)
- 尝试打开 SDL2 窗口时与 D-Bus 相关的运行时崩溃
- 为什么对齐的参数编译正确,但在运行时崩溃
- 这个C++代码有什么问题?它在运行时崩溃
- 在 Xcode 6 中运行 cpp-netlib - 编译但在运行时崩溃
- 代码在 HoughCircles 的 OpenCV 函数圈运行时崩溃
- 在Qt/QML中的每一帧更新图像时运行时崩溃
- 将包含指向该类型队列的指针的结构推送到队列上时发生运行时崩溃
- OpenCV简单代码编译成功,但在运行时崩溃
- GLEW编译,但在运行时崩溃
- openCV程序可编译,但在运行时崩溃
- 为什么这些指针数组会导致运行时崩溃
- Opencv应用程序在运行时崩溃,错误代码为0x0000142
- QSerialPort 在开发环境之外运行时崩溃
- C# / C++应用程序在从Windows运行时崩溃,但不是从Visual Studio
- 构建运行良好,但在运行时崩溃
- Qt串行端口程序在另一个系统上运行时崩溃