Ostalo

Mac simbol(i) pogreške nisu pronađeni za arhitekturu x86_64

Tamo

Originalni poster
22. srpnja 2016
  • 22. srpnja 2016
Bok svima,

Radim na projektu koji se sastoji od kompajliranja Windows aplikacije na Macu. Aplikacija je napisana u C++ s Qt. Sastoji se od knjižnica i glavnog projekta:
http://hpics.li/d8bb2ec
Projekt koristi vanjsku biblioteku, ODA, za upravljanje .dwg i .dgn datotekama.
Problem je u tome da kada kompajliram prvu biblioteku (MdCore), dobijem pogrešku: simbol(i) nisu pronađeni za arhitekturu x86_64.
Prvo sam dodao -stdlib=libstdc++ argumentu qmake, ali Qt mi je generirao datoteke od 0 bajta, tako da to nije bilo rješenje.
Isprobao sam različite verzije ODA biblioteke: 32-bitna, 64-bitna za OSX 10.7 i 10.11. (Moj Mac je na OSX 10.11)
Napravio sam naredbu 'file' u svojim bibliotekama i ovdje je izlaz:

:
.a: trenutna ar arhivska nasumična biblioteka

.dylib:
Mach-0 univerzalna binarna datoteka s 2 arhitekture
(za arhitekturu x68_64): Mach-0 64-bitna dinamički povezana dijeljena biblioteka x86_64
(za arhitekturu i386): Mach-0 dinamički povezana dijeljena biblioteka i386

Pokušao sam kompajlirati na 32 i 64bit, ali to ništa ne mijenja. Već dva tjedna imam ovaj problem i ne znam što mogu učiniti

Napravio sam temu na Qt forumu, možda možete pronaći više informacija:
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
Ako netko ima nagovještaj ili rješenje bit ću zainteresiran

Hvala ! C

cqexbesd

4. lipnja 2009


Njemačka
  • 22. srpnja 2016
Ne znam ništa o qmakeu, ali možda biste jednostavno trebali objaviti koje su vaše naredbe kompajlera za prevođenje i možda će netko moći vidjeti što nije u redu.

Tamo

Originalni poster
22. srpnja 2016
  • 22. srpnja 2016
bok cqexbesd, hvala na odgovoru, ovo je početak izlaza gradnje:

17:34:10: Početak : '/Users/developpement/Qt/5.7/clang_64/bin/qmake' /Users/developpement/Desktop/Mediacad2/MdCore/MdCore.pro -r -spec macx-clang CONFIG+=debug CONFIG+=G+= x86_64 CONFIG+=qml_debug

17:34:10: Proces '/Users/developpement/Qt/5.7/clang_64/bin/qmake' je normalno završio

17:34:10: Početak: '/usr/bin/make'

... C

cqexbesd

4. lipnja 2009
Njemačka
  • 24. srpnja 2016
Ono što sam mislio je da je qmake samo alat za pozivanje prevoditelja. Možete li pronaći redak u kojem qmake poziva kompajler? Vjerojatno ga ne zove ispravno ili bi stvari funkcionirale. Barem je negdje za početak.

Tamo

Originalni poster
22. srpnja 2016
  • 25. srpnja 2016
Mislim da je ovdje:
Šifra: |_+_|
u svom izlazu kompilacije imam te retke nekoliko puta, ali se mijenja samo zadnji redak (naziv datoteke se mijenja)

Uredi: ovdje su isti redovi, ali s razmacima između njih
Šifra: |_+_| Zadnji put uredio moderator: 25. srpnja 2016 C

cqexbesd

4. lipnja 2009
Njemačka
  • 25. srpnja 2016
Trebala bi postojati i linija povezivanja – na pr. red u kojem se clang++ poziva bez -c argumenta. Moglo bi biti korisno ako zapravo možete zalijepiti vezu na cijeli izlaz.

Tamo

Originalni poster
22. srpnja 2016
  • 26. srpnja 2016
Mislim da nije moguće promijeniti argumente kompajlera. Možda ću to učiniti uz upit.
Ovdje je cijeli izlaz (jako je jako dugačak! 100.000 redaka): http://textup.fr/171939hC


Uredi: kompajlirao sam s promptom tako da imam više redaka na izlazu, a zadnji redovi su zanimljivi:


Nedefinirani simboli za arhitekturu x86_64:

Šifra: |_+_| Zadnji put uredio moderator: 26. srpnja 2016 C

cqexbesd

4. lipnja 2009
Njemačka
  • 26. srpnja 2016
Mislim da je 100K izlaza za build iz bilo čega osim najkompliciranijeg sustava vjerojatno znak da su stvari negdje pošle po zlu - ali to je općenitiji komentar o stanju u industriji.

Natrag na vaš konkretni problem. Ne vidim pogreške povezivanja koje ste objavili u 'punom izlazu', no izgleda da su to samo obične pogreške povezivača. Kao i na drugim platformama, možete koristiti nm (ili Google) da pronađete gdje su ti simboli definirani i čini se da se nalazi u /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation za mene (ali ja imam vrlo stari mac pa vam možda nije istina).

Ne biste se izravno povezivali s tom bibliotekom. Pokušajte dodati kod: |_+_| na vaše linker zastavice.

Tamo

Originalni poster
22. srpnja 2016
  • 27. srpnja 2016
Da, u pravu si !! Hvala vam puno, sada mogu sastaviti! Susreo sam se s ovim problemom 3 tjedna! Hvala puno ! S

zibby

5. veljače 2019
  • 5. veljače 2019
cqexbesd je rekao: Mislim da je 100K izlaza za build iz bilo čega osim najkompliciranijeg sustava vjerojatno znak da su stvari negdje pošle po zlu - ali to je općenitiji komentar o stanju u industriji.

Natrag na vaš konkretni problem. Ne vidim pogreške povezivanja koje ste objavili u 'punom izlazu', no izgleda da su to samo obične pogreške povezivača. Kao i na drugim platformama, možete koristiti nm (ili Google) da pronađete gdje su ti simboli definirani i čini se da se nalazi u /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation za mene (ali ja imam vrlo stari mac pa vam možda nije istina).

Ne biste se izravno povezivali s tom bibliotekom. Pokušajte dodati kod: |_+_| na vaše linker zastavice.
S

zibby

5. veljače 2019
  • 5. veljače 2019
bok dečki ... naišao sam na vrlo sličan problem ... ali ja koristim terminal za kompajliranje ... može li netko pomoći kako mogu napraviti isto rješenje u slučaju terminala?

imam spremnu datoteku ./configure i radi glatko, ali dobivam ffi... povezane 'simboli nisu pronađeni...' i nešto što ima veze s povezivačem kada pokrenem make

okieiam

17. prosinca 2016
  • 8. veljače 2019
zibbi je rekao: bok dečki ... naišao sam na vrlo sličan problem ... ali ja koristim terminal za kompajliranje ... može li netko ugoditi pomoći o tome kako mogu napraviti isto rješenje u slučaju terminala?

imam spremnu datoteku ./configure i radi glatko, ali dobivam ffi... povezane 'simboli nisu pronađeni...' i nešto što ima veze s povezivačem kada pokrenem make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure