我正在尝试构建dschaefer android-box2d,并按照这个方法进行操作。 尝试使用eclipse构建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 / platforms / 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的路径。
还有其他一些有同样问题HERE,但我不知道如何修复它。
答案 0 :(得分:0)
错误表明链接器找不到库box2d。
我认为问题在于你有一个指向box2d库(-L../box2d/lib/android
)位置的相对路径。如果您的构建目录发生更改,您的构建将会中断。您可能想要做的是替换box2d库的绝对路径(例如-L/cygdrive/c/box2d/lib/android
)。 NDK的所有其他链接路径都是绝对的。
更好的方法是将box2d库的路径放在环境变量中,并在makefile中使用此环境变量。