1

我正在尝试构建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 的路径。

这里还有一些其他的有同样的问题,但我不知道如何解决它。

4

1 回答 1

0

该错误表明链接器找不到库 box2d。

我认为问题在于您有一个指向 box2d 库 ( -L../box2d/lib/android) 位置的相对路径。如果您的构建目录更改,您的构建将中断。您可能想要做的是替换 box2d 库的绝对路径(例如-L/cygdrive/c/box2d/lib/android)。您到 NDK 的所有其他链接路径都是绝对的。

更好的方法是将 box2d 库的路径放在环境变量中,并在 makefile 中使用此环境变量。

于 2010-05-15T12:40:59.093 回答