2013-02-15 26 views
7

Android SDK'nın (r8d) alet zinciriyle yeni SDL2'yi üretmeyi başarabilmiş biri var mı?NDK araç zinciri ile SDL2 oluşturma

SDL2, yayınlamaya çok yakın gibi görünüyor (çünkü dün artık "UNDER CONSTROCTION: http://hg.libsdl.org/SDL/rev/0a3d2ec7af6d) .Bu bir Android.mk ile birlikte gelir ve paketlenmiş README.android dosyasındaki yönergeleri izleyerek iyi bir şekilde derler. Benim sorum gerçekten çalışan automake tabanlı derleme var mı yoksa Android'de derlemek için kullanılabilir mi yoksa toolchain kurulumunda bir sorun mu var?

$ 'da bulunan belgelerin yönergelerini izleyerek NDK araç zincirini yükledim mi? NDK/doc/STANDALONE-TOOLCHAIN.html Gcc kullanıyorum 4.6 İşte kullanacağım bir ortam:

#!/bin/sh 
export TOOLCHAIN=$HOME/Android/android-14-arm 
export PATH=$TOOLCHAIN/bin:$PATH 
export SYSROOT=$TOOLCHAIN/sysroot 
export CROSS_COMPILE="arm-linux-androideabi" 
export CC=$CROSS_COMPILE-gcc 
export CXX=$CROSS_COMPILE-g++ 
export CPP=$CROSS_COMPILE-cpp 
export CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon" 
export LDFLAGS="-march=armv7-a -Wl,--fix-cortex-a8" 
echo "Compiler set up for ARM 14" 

yapılandırmak parametreler i başarıyla libjpeg-turbo V8 ve SDL_image inşa aynı yapılandırma ile

./configure --host=arm-linux-androideabi --prefix=$SYSROOT/usr/local 

. zaman script çapraz derleyici tanır ve makefile oluşturur, ancak X11 desteği bulur OpenGL ES göremiyorum ... marka başarısız:

In file included from /usr/include/features.h:378:0, 
      from /usr/include/sys/types.h:27, 
      from ./include/SDL_stdinc.h:35, 
... 

ı yapılandırmak günlük kontrol i "/ usr/include" ifadesinin nereden geldiğine dair hiçbir fikriniz yok. Ama aslında, oluşturulan makefile EXTRA_CFLAGS içindeki satırı derleyiciye ekler. NDK belgesi --with-sysroot = $ SYSROOT'u isteğe bağlı olarak belirtir, sorunu çözüp çözmediğini görmek için ekledim, ancak bu yardımcı olmadı. Son bir çaba olarak Makefile'ı elle düzenledim, bu referansı düzelttim ve derleyici X11.h hakkında şikayette bulundu. AFAIK Android'in X11 ile hiçbir ilgisi yok, bu yüzden NDK ile kullanmak için tamamen uygun olmayan tüm yapı ağacı sanırım.

Ayrıca eski bir iş parçacığı here bulunan farklı bir yapılandırma denedim. Ne -DANDROID -mandroid -fomit-frame-pointer tanımlayan ne de geri değişen ARMv7-bir -mfloat-abi = softfp -mfpu = vfp -mthumb" sorunu. Bir önceki projelerde

çözüldü i vardı = -march için Derleyicimin tanınması için config.guess ve config.sub dosyalarını yenilemek, SDL bunları kullanmak istemiyor.Ayrıca Makefile.ac veya Makefile.am, SDL ile birlikte çalışmak için geliyor ve başka bir platform için şablon yok Kendi makefilemi oluşturmak için iyi bir başlangıç ​​noktası olarak kullanıyorum.Ayrıca, makefile ile uğraşmak zorunda kalmadım, gerçekten bu problemleri çözme şansım yok.O başarılı olsa bile, muhtemelen bir konfigürasyon aracına ihtiyacım olacak ndk-build'in betikleri yapılandırmadan SDL2'yi nasıl kurmayı başardığına dair hiçbir fikrim olmadığı için. SDL kaynaklarını birlikte projeyle derlemek tek çalışma - ama çirkin çözümdür. Gerekli lib ve başlık dosyalarını kurulum yaparak kurarım.

Ben

+0

Hata pasajı gerçekten bir hata değil. Hatayı yerleştirmeyi özlemişsiniz ve buradaki her şey, hatayı içeren dosyadır. – Samveen

+0

Yapılandırmayı kullanarak SDL2 oluşturma, make teoride çalışmalı, ancak devlerin hiçbiri bunu böyle yapmadığından, bu yüzden neden bu kadar beklemediniz. Bulduğunuz hataları (ve yamalar) bildirmekten çekinmeyin!) - Bugzilla https://bugzilla.libsdl.org Denemeyi denediğiniz bir şey varsa, denemek isterseniz, bu kopyayı/SDL_config_android.h dosyasını SDL_config.h üstüne ekleyin, sonra da Bu çalışır (SDL_config_android.h aklı ayarları olması gereken Android için önceden pişirilmiş bir yapılandırma başlığı). – gabomdq

cevap

2

Bu sorun http://hg.libsdl.org/SDL/rev/4e57cfd9fca8 sabit ve 2.0.4 sürümü için beklenen edilmiştir ... çözüm bir şey ben sadece düşünmedim gerçekten kolay ve bariz bir şeydir umarım. Tanımlarla ilgili bazı düzeltmelerle birlikte daha yeni düzeltmeler olduğunu unutmayın.