Друго

Mac Как да избегнем „Недефинирани символи за архитектура x86_64“?

mikezang

да се
Оригинален плакат
22 май 2010 г
Токио, Япония
  • 25 юли 2015 г
Опитах се да създам кръстосана компилация за стария си Lego RCX, използвам GCC 3.3.6 и NEWLIB 1.13.
Код: |_+_|
Когато го направя, най-накрая получих грешка, както е по-долу, какво мога да направя?
Код: |_+_|

Мад Разумният

да се
8 ноември 2010 г


Юта
  • 2 август 2015 г
Това, което се случва е, че линкерът на OS X не може да намери посочената функция във всичко, което се опитва да свърже. Причината за това може да е липсващ макрос на препроцесора или компилираният код и/или библиотеката не са свързани.

mikezang

да се
Оригинален плакат
22 май 2010 г
Токио, Япония
  • 4 август 2015 г
Madd the Sane каза: Това, което се случва е, че линкерът на OS X не може да намери посочената функция във всичко, което се опитва да свърже. Причината за това може да е липсващ макрос на препроцесора или компилираният код и/или библиотеката не са свързани.
Благодаря за вашето съобщение! можете ли да ми кажете как да реша този проблем? ° С

cqexbesd

4 юни 2009 г
Германия
  • 4 август 2015 г
mikezang каза: Благодаря за вашето съобщение! можете ли да ми кажете как да реша този проблем?

Тук само предполагам, но мисля, че може да се наложи да имате инсталиран gperf. След това започнете да създавате от нулата - т.е. направете distclean или подобен - или просто изтрийте директорията си и разширете отново tar файла.

Cromulent

2 октомври 2006 г
Страната на надеждата и славата
  • 4 август 2015 г
mikezang каза: Благодаря за вашето съобщение! можете ли да ми кажете как да реша този проблем?

Изглежда, че използвате грешен GCC.

Или въведете пълен път до GCC 3.3.6 или го добавете към пътя с име, различно от GCC (защото Apple вече предоставя GCC команда, която се случва да стартира clang). Ето защо имате следната грешка:

ld: символ(и) не са намерени за архитектура x86_64

clang: грешка: командата за свързване е неуспешна с изходен код 1 (използвайте -v, за да видите извикването)

Вие всъщност изпълнявате Clang, който се компилира в x86_64. Трябва да стартирате GCC, който компилирахте. Обикновено, когато компилирате GCC като крос компилатор, вие му давате различно име от GCC (което е една от опциите за конфигуриране на скрипта за GCC, когато го компилирате), така че да можете да разберете разликата между GCC, предоставен от системата, и вашия собствен GCC кръст компилатор.

mikezang

да се
Оригинален плакат
22 май 2010 г
Токио, Япония
  • 4 август 2015 г
cqexbesd каза: Тук само предполагам, но мисля, че може да се наложи да имате инсталиран gperf. След това започнете да създавате от нулата - т.е. направете distclean или подобен - или просто изтрийте директорията си и разширете отново tar файла.
Страхотен! Снощи намерих тази страница http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , грешката е изчезнала, след като я последвате.