android - 如何使用自定义 Makefile 为 Android 编译 STL C++?

标签 android c++ stl makefile android-ndk

我正在使用自定义 Makefile 为 Android 编译一些源代码,代码如下:

NDKDIR := /path/to/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin
NDKCC := $(NDKDIR)/arm-linux-androideabi-gcc
NDKCXX := $(NDKDIR)/arm-linux-androideabi-g++
NDKFLAGS := -I/path/to/android-ndk-r10c/platforms/android-21/arch-arm/usr/include/

%.o: %.cpp
    $(NDKCXX) $(NDKFLAGS) -c $< -o $@

编译常规 C++ 代码工作正常,但任何包含“STL” header 的代码(例如 queue)都会失败并显示“ fatal error :队列:没有这样的文件或目录”。

有什么方法可以使它与 STL header 一起工作吗?

最佳答案

我也有这个问题,所以我把这三个放在一起,然后解决了。

安卓.mk

LOCAL_CFLAGS := -D_STLP_USE_NEWALLOC
LOCAL_C_INCLUDES += ${NDK_ROOT}/sources/cxx-stl/stlport/stlport
LOCAL_LDLIBS    += -lstdc++

关于android - 如何使用自定义 Makefile 为 Android 编译 STL C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26898331/

相关文章:

android - GoogleMaps - 调用 onPause()

C++ : namespace conflicting declaration error

c++ - 如何为 std::transform 创建正确的接口(interface)

android - 使用 kotlin-android-extensions 从子模块导入 View 时 Unresolved 引用

Android onDraw() 没有在 Timer 上被调用

Android Espresso - 等待直到显示对话框

c++ - 创建一个 const char* const* 数组

c++ - 强制可执行文件进入内存?

c++ - 为什么我需要 std::get_temporary_buffer?

c++ - const map & 作为函数参数