相关疑难解决方法(0)

Android NDK中不能包含像vector这样的C++标头

当我尝试在我的Android NDK项目中包含任何类似矢量的C++类时(使用最新的NDK r5b),我得到如下错误...

Compile++ thumb : test-libstl <= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory

在线报道此问题的其他人通过添加声称成功

APP_STL := stlport_static

到他们的Application.mk文件.我已经完成了这个,并尝试了APP_STL的所有其他可能的值.我已经清理到项目,运行ndk-build干净,删除了obj和libs文件夹,仍然在我编译它时找不到矢量类.我已经在这个问题上工作了好几个星期(自NDK r5问世以来),如果有人有任何建议,我会非常感激.谢谢!

android stl vector android-ndk

82
推荐指数
4
解决办法
10万
查看次数

将STL链接到独立的Android NDK可执行文件

以下代码在打印字符串后导致分段错误:

#include <iostream>
using namespace std;

int main()
{
    cout << "ndktest" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  • 如果我将cout更改为printf,它不会崩溃.
  • 如果我在除main之外的其他函数中调用cout,并且从不访问该函数,它仍然会崩溃.
  • 它在Froyo上崩溃了,但不是ICS.

作为参考,这是我的Android.mk:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := ndktest
LOCAL_SRC_FILES := main.cpp

include $(BUILD_EXECUTABLE)
Run Code Online (Sandbox Code Playgroud)

和Application.mk:

APP_STL := stlport_static
Run Code Online (Sandbox Code Playgroud)

这是来自logcat的崩溃:

I/DEBUG   (  872): pid: 4234, tid: 4234  >>> /data/ndktest <<<
I/DEBUG   (  872): signal 11 (SIGSEGV), fault addr 00024004
I/DEBUG   (  872):  r0 00033824  r1 00001000  r2 00024005  r3 bea42cfc
I/DEBUG   (  872):  r4 40008090  r5 0000000a  r6 40008000  r7 afd42328 …
Run Code Online (Sandbox Code Playgroud)

c++ android stl android-ndk

12
推荐指数
1
解决办法
2991
查看次数

NDK不会构建错误

当我尝试执行NDK构建时,我得到以下错误列表...任何人都有任何线索?

encies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h:153: undefined reference to `__cxa_allocate_exception'
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h:153: undefined reference to `__cxa_throw'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o): In function `std::_Rb_tree_const_iterator<std::pair<Imf::Name const, Imf::Channel> >::operator++()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/NDK/sources/cxx-stl/gnu-libstdc++/include/bits/stl_tree.h:259: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o): In function `PizCompressor':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfPizCompressor.cpp:228: undefined reference to `__cxa_end_cleanup'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o):(.ARM.extab.text._ZN3Imf13PizCompressorC2ERKNS_6HeaderEjj+0x0): undefined reference to `__gxx_personality_v0'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o): In function `std::_Rb_tree_const_iterator<std::pair<Imf::Name const, Imf::Channel> >::operator++()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/NDK/sources/cxx-stl/gnu-libstdc++/include/bits/stl_tree.h:259: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o): In function `PizCompressor':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfPizCompressor.cpp:228: undefined reference to `__cxa_end_cleanup'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o):(.ARM.extab.text._ZN3Imf13PizCompressorC1ERKNS_6HeaderEjj+0x0): undefined reference to `__gxx_personality_v0'
    ./obj/local/armeabi/libfreeimage.a(ImfPizCompressor.o):(.data.rel.ro+0x28): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
    ./obj/local/armeabi/libfreeimage.a(ImfPxr24Compressor.o): In function `Imf::(anonymous namespace)::notEnoughData()':
    D:\Projects.CPP\Engine5\svn\trunk\Dependencies\FreeImage/D:/Projects.CPP/Engine5/svn/trunk/Dependencies/FreeImage/jni/../Source/OpenEXR/./IlmImf/ImfPxr24Compressor.cpp:165: undefined reference …
Run Code Online (Sandbox Code Playgroud)

android android-ndk

4
推荐指数
1
解决办法
8769
查看次数

标签 统计

android ×3

android-ndk ×3

stl ×2

c++ ×1

vector ×1