Problema Construindo Dschaefer / Android-Box2D
-
27-09-2019 - |
Pergunta
Estou tentando construir Dschaefer Android-box2d, e seguiu a receita. Eu recebo esse erro ao tentar construir o TestBox2D com o Eclipse:
Make All /cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-bi-ld -nostdlib -shared -bsymbolic -no-undefined -- o obj/libest.so obj/test.o -l ../ box2d/lib/android -lbox2d -l/cygdrive/c/android/android-ndk-r3/build/plataforms/android-3/arch-armar /usr/lib -llog -lc -lstdc ++-lm /cygdrive/c/android/android-ndk--r3/build/prebuilt/windows/arm-ebi-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-bi-ld: não é possível encontrar -lbox2d make: *** [obj/libest.so ] Erro 1
A única coisa que mudei foi no testbox2d makefile, onde mudei o caminho para o NDK.
Há outros que têm o mesmo problema AQUI Mas eu não sei como consertar.
Solução
O erro indica que o vinculador não pode encontrar o Box2D da biblioteca.
O que eu acho que é o problema é que você tem um caminho relativo apontando para a localização da biblioteca Box2d (-L../box2d/lib/android
). Se o seu diretório de compilação mudar, sua construção quebrará. O que você pode querer fazer é substituir um caminho absoluto para a biblioteca Box2D (como -L/cygdrive/c/box2d/lib/android
). Todos os seus outros caminhos de link para o NDK são absolutos.
Uma maneira melhor seria colocar o caminho para a sua biblioteca Box2D em uma variável de ambiente e usar essa variável de ambiente no seu Makefile.