Android: Staticky propojení proti libstdc ++

hlasů
1

můj program sestavuje pěkně pro Android, ale když se snažím, aby ho zkopírovat do Android emulátoru, dává následující chybová zpráva:

knight666@Katja-Linux /media/Data/Shared/Galaxians $ acpy Galaxians.android
Filename: 'Galaxians.android'
819 KB/s (420657 bytes in 0.501s)
link_image[1638]:   825 could not load needed library 'libstdc++.so.6' for '/system/sbin/Galaxians.android' (load_library[984]: Library 'libstdc++.so.6' not found)CANNOT LINK EXECUTABLE

acpy je malý skript jsem napsal, že provede následující akce:

#!/bin/sh

FILEPATH=`dirname $1`
FILENAME=`basename $1 .c`

echo Filename: '$FILENAME'

adb push $FILEPATH/$FILENAME /system/sbin/$FILENAME
adb shell chmod 777 /system/sbin/$FILENAME
adb shell /system/sbin/$FILENAME

Zde je, jak jsem budoval svou přihlášku:

oem@androiddev /media/YoghurtGum/Tests/Galaxians $ sudo make
arm-none-linux-gnueabi-g++ -static-libgcc -g -Wall -Werror -O2 -w -I ../../YoghurtGum/src/GLES -I ../../YoghurtGum/src -c src/Alien.cpp -o intermediate/Alien.o
arm-none-linux-gnueabi-g++ -static-libgcc -g -Wall -Werror -O2 -w -I ../../YoghurtGum/src/GLES -I ../../YoghurtGum/src -c src/Bullet.cpp -o intermediate/Bullet.o
arm-none-linux-gnueabi-g++ -static-libgcc -g -Wall -Werror -O2 -w -I ../../YoghurtGum/src/GLES -I ../../YoghurtGum/src -c src/Game.cpp -o intermediate/Game.o
arm-none-linux-gnueabi-g++ -static-libgcc -g -Wall -Werror -O2 -w -I ../../YoghurtGum/src/GLES -I ../../YoghurtGum/src -c src/Player.cpp -o intermediate/Player.o

arm-none-linux-gnueabi-gcc 
-Wl,--entry=main,
-dynamic-linker=/system/bin/linker,
-rpath-link=/home/oem/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib,
-rpath=../../YoghurtGum/lib/Android,
-L/home/oem/android-ndk-r3/build/platforms/android-5/arch-arm/usr/lib 
-nostdlib 
-lstdc++ 
intermediate/Alien.o 
intermediate/Bullet.o 
intermediate/Game.o 
intermediate/Player.o 
../../YoghurtGum/lib/Android/libstdc++.a 
../../YoghurtGum/bin/YoghurtGum.a 
-o bin/Galaxians.android

Konce řádků jsou pouze pro přehlednost, nikdo existují ve skutečném výkonu.

YoghurtGum je moje hra knihovna, která již staticky a dynamicky odkazy na libstdc++.

Když jsem odstranit lstdc++, program není kompilace, protože nemůže najít knihovnu.

Existuje způsob, jak propojit stdlibc++staticky nebo propojit aplikaci správné dynamické knihovny v emulátoru?

Díky předem.

Položena 19/04/2010 v 21:04
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Tam je modifikace NdK s podporou výjimek, RTTI a stdlibc ++.

http://www.crystax.net/android/ndk-r3.php

Druhá alternativa zahrnuje přenesení právě to, co potřebujete, po ruce ... EEK!

Odpovězeno 16/03/2011 v 15:57
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more