Построение задач dschaefer / android-box2d - PullRequest
1 голос
/ 15 мая 2010

Я пытаюсь собрать dschaefer android-box2d , и действительно следовал рецепту. Я получаю эту ошибку при попытке построить TestBox2d с затмением:


сделать все /cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-ld \ -nostdlib -shared -Bsymbolic --no-undefined \ -o obj / libtest.so obj / test.o -L ../ box2d / lib / android -lbox2d \ -L / cygdrive / c / android / android-ndk-r3 / build / платформы / android-3 / arch-arm / usr / lib \ -llog -lc -lstdc ++ -lm \ /cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/interwork/libgcc.a \

/ cygdrive / c / android / android-ndk-r3 / build / prebuilt / windows / arm-eabi-4.2.1 / bin / arm-eabi-ld: невозможно найти -lbox2d make: *** [obj / libtest.so] Ошибка 1


Единственное, что я изменил, было в TestBox2d \ Makefile, где я изменил путь к NDK.

Есть и другие, у которых такая же проблема ЗДЕСЬ но я не знаю, как ее исправить.

1 Ответ

0 голосов
/ 15 мая 2010

Ошибка указывает, что компоновщик не может найти библиотеку box2d.

Проблема в том, что у вас есть относительный путь, указывающий на местоположение библиотеки box2d (-L../box2d/lib/android).Если ваша директория сборки изменится, ваша сборка сломается.Возможно, вы захотите заменить абсолютный путь к библиотеке box2d (например, -L/cygdrive/c/box2d/lib/android).Все остальные ваши пути ссылки на NDK являются абсолютными.

Лучшим способом было бы поместить путь к вашей библиотеке box2d в переменную окружения и использовать эту переменную окружения в вашем make-файле.

...