Android — Компиляция библиотеки CPP в DLL, не может найти stdlib

Вообще говоря, я пытаюсь скомпилировать библиотеку CPP в свою собственную библиотеку как DLL для Android (или, точнее, .so файл). Когда мой инструментарий (подробнее об этом позже) запускает следующие строки:

arm-linux-androideabi-g++ -Iinclude/common -Iinclude/android -std=gnu++11 --sysroot=c:\android\ndk/platforms/android-19/arch-arm -Ic:\android\ndk/sources/cxx-stl/gnu-libstdc++/4.6/include -Ic:\android\ndk/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -DHXCPP_VISIT_ALLOCS -DHXCPP_API_LEVEL=0 -IC:/HaxeToolkit/haxe/lib/hxcpp/3,1,39/include -Iinclude -fpic -fvisibility=hidden -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums "-D_LINUX_STDDEF_H " -Wno -psabi -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -fomit-frame-pointer -fexceptions -fno-strict-aliasing -finline-limit=10000 -DANDROID=ANDROID -Wa,--noexecstack -O2 -DNDEBUG -c -x c++ -frtti ./common/ExternalInterface.cpp -oobj/android-v7/802265c0_ExternalInterface.obj
arm-linux-androideabi-g++ -o../ndll/Android/libopenflgpg-v7.so -frtti -nostdlib -Wl,-shared,-Bsymbolic -Wl,--no-undefined -Wl,-z,noexecstack --sysroot=c:\android\ndk/platforms/android-19/arch-arm -Lc:\android\ndk/platforms/android-19/arch-arm/usr/lib @obj/android-v7/all_objs libs/android/libgpg-v7.a c:\android\ndk/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/libgnustl_static.a c:\android\ndk/platforms/android-19/arch-arm/usr/lib/crtbegin_so.o c:\android\ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/libgcc.a c:\android\ndk/platforms/android-19/arch-arm/usr/lib/libc.so c:\android\ndk/platforms/android-19/arch-arm/usr/lib/libm.so -llog -ldl

Я получаю эту ошибку (и тонну больше, как это):

gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: libs/android/libgpg-v7.a: in function gpg::OperationQueue::Impl::StartThreadIfNotRunningLocked():turn_based_match_impl.pb.cc(.text._ZN3gpg14OperationQueue4Impl29StartThreadIfNotRunningLockedEv+0x94): error: undefined reference to 'std::__1::thread::~thread()'

Кажется, он не может найти std библиотека; почему бы и нет? Я на Windows, с установленной Microsoft Visual Studio C ++ 2010 Express, если это поможет.

Более конкретно, я пытаюсь включить Google Play Games C ++ SDK в Haxe, используя HXCPP для компиляции NDLL со всеми функциями, которые я смогу вызывать, используя Lib.load в моем коде Haxe. Полный проект Вот.

Я пытался в том числе typeinfo и около десятка других заголовков безрезультатно. Я признаю, что C ++ — не моя сильная сторона, поэтому я мог упустить из виду нечто совершенно очевидное. Спасибо за вашу помощь!

0

Решение

Добавьте это в свой файл Application.mk:

NDK_TOOLCHAIN_VERSION := clang
0

Другие решения


По вопросам рекламы [email protected]