آخر

Mac كيف تتجنب 'الرموز غير المحددة للهندسة المعمارية x86_64'؟

مايكيزانغ

إلى
ملصق أصلي
22 مايو 2010
طوكيو، اليابان
  • 25 يوليو 2015
حاولت إنشاء تجميع متقاطع لـ Lego RCX القديم الخاص بي ، وأنا أستخدم GCC 3.3.6 و NEWLIB 1.13.
الكود: 1. Download GCC 3.3.6 and Unzip cd ../.. wget http://gcc.parentingamerica.com/releases/gcc-3.3.6/gcc-3.3.6.tar.gz tar xzvf gcc-3.3.6/gcc-3.3.6.tar.gz 2. Download NEWLIB 1.13 and unzip wget ftp://sourceware.org/pub/newlib/newlib-1.13.0.tar.gz tar xzvf newlib-1.13.0.tar.gz 3. Link NEWLIB to GCC cd gcc-3.3.6/ ln -s ../newlib-1.13.0/newlib . 4. Make h8300-hms build folder cd .. mkdir build_gcc_h8300-hms 5. Config ../gcc-3.3.6/configure --prefix=/usr/local/h8300-hms --program-prefix=h8300-hms- --target=h8300-hms --enable-languages=c,c++ --with-newlib 6. Make make CFLAGS='-O2 -fomit-frame-pointer' all
عندما أقوم بذلك ، حصلت أخيرًا على خطأ على النحو التالي ، ماذا أفعل؟
الكود: gcc -c -O2 -fomit-frame-pointer -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H -I. -Icp -I../../gcc-3.3.6/gcc -I../../gcc-3.3.6/gcc/cp -I../../gcc-3.3.6/gcc/config -I../../gcc-3.3.6/gcc/../include ../../gcc-3.3.6/gcc/cp/cp-lang.c -o cp/cp-lang.o gcc -O2 -fomit-frame-pointer -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -DHAVE_CONFIG_H -o cc1plus cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parse.o cp/ptree.o cp/rtti.o cp/spew.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o cp/mangle.o cp/cp-lang.o attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o c-dump.o c-pretty-print.o c-opts.o main.o libbackend.a libcpp.a ./intl/libintl.a -liconv ../libiberty/libiberty.a Undefined symbols for architecture x86_64: '_libc_name_p', referenced from: _nothrow_libfn_p in except.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [cc1plus] Error 1 make: *** [all-gcc] Error 2

ماد العاقل

إلى
8 نوفمبر 2010


يوتا
  • 2 أغسطس 2015
ما يحدث هو أن رابط OS X لا يمكنه العثور على الوظيفة المحددة في أي شيء يحاول ربطه. قد يكون السبب في ذلك هو فقدان ماكرو المعالج المسبق ، أو عدم ربط الكود المترجم و / أو المكتبة.

مايكيزانغ

إلى
ملصق أصلي
22 مايو 2010
طوكيو، اليابان
  • 4 أغسطس 2015
قال Madd the Sane: ما يحدث هو أن رابط OS X لا يمكنه العثور على الوظيفة المحددة في أي شيء يحاول ربطه. قد يكون السبب في ذلك هو وجود ماكرو معالج مسبق مفقود ، أو أن الشفرة المترجمة و / أو المكتبة غير مرتبطة.
شكرا على رسالتك! هل يمكن أن تخبرني كيف أحل هذه المشكلة؟ ج

cqexbesd

4 يونيو 2009
ألمانيا
  • 4 أغسطس 2015
قال مايكيزانغ: شكرا على رسالتك! هل يمكن أن تخبرني كيف أحل هذه المشكلة؟

أنا فقط أخمن هنا ولكن أعتقد أنك قد تحتاج إلى تثبيت gperf. ثم ابدأ البناء من نقطة الصفر - على سبيل المثال: إنشاء distclean أو ما شابه - أو احذف الدليل الخاص بك وقم بتوسيع ملف tar مرة أخرى.

Cromulent

2 أكتوبر 2006
أرض الأمل والمجد
  • 4 أغسطس 2015
قال مايكيزانغ: شكرا على رسالتك! هل يمكن أن تخبرني كيف أحل هذه المشكلة؟

يبدو أنك تستخدم GCC غير صحيح.

إما أن تكتب المسار الكامل إلى GCC 3.3.6 أو تضيفه إلى المسار باسم مختلف عن GCC (لأن Apple توفر بالفعل أمر GCC والذي يحدث بالفعل لتشغيل clang). لهذا السبب لديك الخطأ التالي:

ld: لم يتم العثور على رمز (رموز) للعمارة x86_64

clang: خطأ: فشل الأمر linker مع رمز الخروج 1 (استخدم -v لرؤية الاستدعاء)

أنت تقوم بالفعل بتشغيل Clang الذي يتم تجميعه إلى x86_64. تحتاج إلى تشغيل GCC التي قمت بتجميعها. عادةً عند تجميع GCC كمترجم متقاطع ، فإنك تعطيه اسمًا مختلفًا عن GCC (وهو أحد خيارات تكوين البرنامج النصي لـ GCC عند تجميعه) حتى تتمكن من معرفة الفرق بين GCC التي يوفرها النظام وتقاطع GCC الخاص بك مترجم.

مايكيزانغ

إلى
ملصق أصلي
22 مايو 2010
طوكيو، اليابان
  • 4 أغسطس 2015
قال cqexbesd: أنا فقط أخمن هنا ولكن أعتقد أنك قد تحتاج إلى تثبيت gperf. ثم ابدأ البناء من نقطة الصفر - على سبيل المثال: إنشاء distclean أو ما شابه - أو احذف الدليل الخاص بك وقم بتوسيع ملف tar مرة أخرى.
رائعة! الليلة الماضية وجدت هذه الصفحة http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p ، ذهب الخطأ بعد متابعته.