LINUX.ORG.RU
ФорумMobile

[Qt] [android] [necessitas] как прилинковать либу

 ,


0

2

имеется работающий (на десктопе) проект, в котором используется библиотека физического движка (box2d)
necessitas установлен и настроен под debian x86_64
движок собран, всё замечательно
но вот если изменить цель на android, то либа вдруг отчего-то отказывается прилинковываться:

/home/efg/necessitas/Android/Qt/480/armeabi/lib/libBox2D.a:-1: error: could not read symbols: File format not recognized
как, зачем, почему? что делать?
устанавливать <array name=«bundled_libs»> в android/res/values/libs.xml смысла нет, так как код вообще не компилица из-за ну вы поняли
подсовываю .so - аналогично:
Running build steps for project jet_pig_adventures...
Configuration unchanged, skipping qmake step.
Starting: "/usr/bin/make" -w
make: Вход в каталог `/home/efg/qt_projects/jet_pig_adventures-build--Necessitas_Qt_4_8_0_for_Android_armv5_Debug'
/home/efg/necessitas/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ --sysroot=/home/efg/necessitas/android-ndk-r6b/platforms/android-5/arch-arm/ -L/home/efg/necessitas/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3 -Wl,-rpath-link=/home/efg/necessitas/android-ndk-r6b/platforms/android-5/arch-arm//usr/lib -Wl,--no-undefined -Wl,-z,noexecstack -shared -Wl,-soname,libjet_pig_adventures.so -Wl,-rpath=/tmp/necessitas/unstable/Android/Qt/480/build-armeabi/install/lib -o libjet_pig_adventures.so main.o game.o contactFilter.o gameView.o qtmain_android.o moc_game.o moc_gameView.o qrc_resources.o    -L/home/efg/necessitas/android-ndk-r6b/sources/cxx-stl/gnu-libstdc++/libs/armeabi -L/home/efg/necessitas/android-ndk-r6b/platforms/android-5/arch-arm//usr/lib -L/home/efg/necessitas/Android/Qt/480/armeabi/lib -l:libBox2D.so.2.1.0 -lQtSvg -L/home/efg/necessitas/Android/Qt/480/armeabi/lib -L/tmp/necessitas/android-ndk-r6b/sources/cxx-stl/gnu-libstdc++/libs/armeabi -L/tmp/necessitas/android-ndk-r6b/platforms/android-5/arch-arm//usr/lib -lQtXml -lQtGui -lQtCore -lstdc++ -lsupc++ -llog -lz -lm -ldl -lc -lgcc 
/home/efg/necessitas/Android/Qt/480/armeabi/lib/libBox2D.so.2.1.0: file not recognized: File format not recognized
make: Выход из каталога `/home/efg/qt_projects/jet_pig_adventures-build--Necessitas_Qt_4_8_0_for_Android_armv5_Debug'
collect2: ld returned 1 exit status
make: *** [libjet_pig_adventures.so] Ошибка 1
The process "/usr/bin/make" exited with code 2.
Error while building project jet_pig_adventures (target: Android)
When executing build step 'Make'
понятно, что причина в самом компиляторе arm-linux-androideabi-g++, непонятно, что делать
есть вот обсуждения
http://groups.google.com/group/android-qt/browse_thread/thread/ce6b6a6d4cfb2a62
http://sourceforge.net/p/necessitas/tickets/106/
но там о другом, у чуваков либа не добавлялась в пакет

/home/efg/necessitas/Android/Qt/480/armeabi/lib/libBox2D.a:-1: error: could not read symbols: File format not recognized

Может библиотека собрана для x86-64?

YesSSS ★★★
()
Ответ на: комментарий от epicfailguy93

Я с ndk не работал, но с другими кросскомпиляторами обычно так.

YesSSS ★★★
()
Ответ на: комментарий от PolarFox

Можно попробовать засунуть его дерево исходников в проект.

спасибо, это помогло :)

epicfailguy93
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.