سؤال

أحاول البناء Dschaefer Android-box2d, ، وتبع الوصفة. أحصل على هذا الخطأ عند محاولة إنشاء TestBox2D مع Eclipse:


make all /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 /سيجدريف .1/interork/libgcc.a

/cygdrive/c/android/android-ndk-r3/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-ld: لا يمكن العثور على -lbox2d: *** [obj/libtest.so ] خطأ 1


الشيء الوحيد الذي قمت بتغييره هو في testbox2d makefile حيث قمت بتغيير المسار إلى NDK.

هناك بعض الأشخاص الآخرين لديهم نفس المشكلة هنا لكني لا أعرف كيفية إصلاحه.

هل كانت مفيدة؟

المحلول

يشير الخطأ إلى أن الرابط لا يمكنه العثور على Library Box2D.

ما أعتقد أنه المشكلة هو أن لديك مسارًا نسبيًا يشير إلى موقع مكتبة Box2D (-L../box2d/lib/android). إذا تغير دليل البناء الخاص بك ، فسوف ينهار بنيتك. ما قد ترغب في فعله هو استبدال مسار مطلق لمكتبة Box2D (مثل -L/cygdrive/c/box2d/lib/android). جميع مسارات الارتباط الأخرى الخاصة بك إلى NDK مطلقة.

تتمثل إحدى الطرق الأفضل في وضع المسار إلى مكتبة Box2D الخاصة بك في متغير البيئة واستخدام متغير البيئة هذا في Makefile.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top