يأمر:
./configure --host = arm-linux-gnueabihf --prefix = / home / ec2-user / iperf_install / CC = arm-linux-androideabi-gcc CXX = arm-linux-androideabi-g ++ CFLAGS = -static CXXFLAGS = - ثابتة
main.c: 62: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
main.c: 124: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
main.c: 131: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
cjson.c: 50: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
collect2: خطأ: أرجع ld حالة خروج واحدة
أحاول تجميع ثنائي iperf3 لنظام android. أشعر بخيبة أمل كبيرة لعدم وجود معلومات محددة لتجميع ثنائي iperf3 لنظام android. هل يمكن لأحد المساعدة من فضلك؟
شكرا،
-هارديك
cjson.c: 50: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
cjson.c: 56: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
cjson.c: 72: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
cjson.c: 85: خطأ: إشارة غير محددة إلى "__gnu_mcount_nc"
iperf3 لا يدعم Android رسميًا وليس لدينا الموارد اللازمة للقيام بذلك. لذلك وضع علامة على أنها "مطلوب مساعدة".
نلاحظ أن iperf2 يدعم Android رسميًا. ربما تكون هذه منصة أكثر ملاءمة؟
أنا أواجه نفس المشكلة ، فهل من اقتراح لذلك؟
لقد استبدلت تكوين البرنامج النصي بـ CMake لأغراضي. أنا متأكد من أنه يمكنني الحصول على هذا التجميع لنظام Android ، لكنني حاليًا أقوم بالتجميع لنظام iOS.
https://github.com/palmerc/iperf
[تحديث]
الإعداد HAVE_ENDIAN 1
cmake -D ANDROID_PLATFORM = android-21 -G Ninja -D CMAKE_TOOLCHAIN_FILE = .. / android-ndk / android-ndk-r16b / build / cmake / android.toolchain.cmake ../iperf
cmake - بناء.
عمل. لقد اختبرت أيضًا مع -D ANDROID_ABI = arm64-v8a
إذا أراد شخص ما ، يمكنني إرسال بناء CMake كطلب سحب
أو يمكنك تعديل src / Makefile.in ، وحذف "-pg" من iperf3_profile_CFLAGS و iperf3_profile_LDFLAGS.
فيما يلي ثلاثة حلول لهذه المشكلة ، بالترتيب من أقل جهد إلى بذل أقصى جهد:
في الوقت الذي يفشل فيه ربط الملف التنفيذي الذي يحتوي على ملف تعريف iperf3 ، من المحتمل أن يكون ملف iperf3 القابل للتنفيذ "العادي" قد تم إنشاؤه بالفعل ... على الأقل يكون موجودًا على أنظمتي. لذلك إذا كنت على استعداد لقبول خروج الخطأ من عملية التصنيع (وقليلًا من العمل الضائع على مضيف الإنشاء) ، فقد لا تحتاج إلى فعل أي شيء.
بعد الخطوة configure
، سيكون هناك تعريف في src/Makefile
يبدو كالتالي:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
iperf3_profile$(EXEEXT)
إذا قمت بتحريره ليبدو هكذا ، فسيؤدي ذلك إلى تعطيل إنشاء ملف تعريف iperf3:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
src/Makefile.am
وقمت بتغيير السطر كما يلي:noinst_PROGRAMS = t_timer t_units t_uuid iperf3_profile
لتبدو مثل هذا:
noinst_PROGRAMS = t_timer t_units t_uuid
ثم قم بتشغيل ./bootstrap.sh
، والذي سيعيد إنشاء ملفات المشروع Makefiles لاستبعاد ملف iperf3 الدائم القابل للتنفيذ (ضمن شجرة المصدر تلك).
في هذه المرحلة ، أميل إلى كتابة هذا كعنصر أسئلة وأجوبة وإغلاق المشكلة.
أو:
./configure - تعطيل التنميط - المضيف = arm-linux-androideabi
التعليق الأكثر فائدة
أو:
./configure - تعطيل التنميط - المضيف = arm-linux-androideabi