Drugo

Za arhitekturo x86_64 ni bilo mogoče najti simbola napake Mac

tam

Originalni plakat
22. julij 2016
  • 22. julij 2016
Pozdravljeni vsi,

Delam na projektu, ki sestoji iz sestavljanja aplikacije Windows na Macu. Aplikacija je napisana v C++ s Qt. Sestavljen je iz knjižnic in glavnega projekta:
http://hpics.li/d8bb2ec
Projekt uporablja zunanjo knjižnico ODA za upravljanje datotek .dwg in .dgn.
Težava je v tem, da ko prevedem prvo knjižnico (MdCore), dobim napako: simbol(i) ni mogoče najti za arhitekturo x86_64.
Najprej sem argumentu qmake dodal -stdlib=libstdc++, vendar mi je Qt ustvaril 0 bajtnih datotek, tako da to ni bila rešitev.
Preizkusil sem različne različice knjižnice ODA: 32-bitna, 64-bitna za OSX 10.7 in 10.11. (Moj Mac je na OSX 10.11)
Naredil sem ukaz 'datoteka' v svojih knjižnicah in tukaj je izhod:

:
.a: trenutna naključna knjižnica arhiva ar

.dylib:
Mach-0 univerzalna dvojiška datoteka z 2 arhitekturama
(za arhitekturo x68_64): Mach-0 64-bitna dinamično povezana knjižnica v skupni rabi x86_64
(za arhitekturo i386): Mach-0 dinamično povezana knjižnica v skupni rabi i386

Poskušal sem prevesti na 32 in 64bit, vendar ni nič spremenilo. Dva tedna imam to težavo in ne vem kaj naj naredim

Na Qt forumu sem ustvaril temo, morda lahko najdete več informacij:
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
Če ima kdo kakšno idejo ali rešitev me zanima

Hvala! C

cqexbesd

4. junij 2009


Nemčija
  • 22. julij 2016
Ne vem ničesar o qmakeu, vendar bi morda morali objaviti, katere ukaze prevajalnika želite prevesti in morda bo kdo lahko videl, kaj je narobe.

tam

Originalni plakat
22. julij 2016
  • 22. julij 2016
zdravo cqexbesd, hvala za vaš odgovor, tukaj je začetek izhoda gradnje:

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

17:34:10: Postopek '/Users/developpement/Qt/5.7/clang_64/bin/qmake' se je normalno končal

17:34:10: Začetek: '/usr/bin/make'

... C

cqexbesd

4. junij 2009
Nemčija
  • 24. julij 2016
Mislil sem, da je qmake le orodje za klic prevajalnika. Ali lahko najdete vrstico, kjer qmake pokliče prevajalnik? Verjetno ga ne kliče pravilno ali pa bi stvari delovale. Vsaj nekje je treba začeti.

tam

Originalni plakat
22. julij 2016
  • 25. julij 2016
Mislim, da je tukaj:
Koda: |_+_|
v izhodu kompilacije imam te vrstice večkrat, vendar se spremeni samo zadnja vrstica (spreminja se ime datoteke)

Uredi : tukaj so iste vrstice, vendar s presledki med njimi
Koda: |_+_| Nazadnje uredil moderator: 25. julij 2016 C

cqexbesd

4. junij 2009
Nemčija
  • 25. julij 2016
Obstajati mora tudi povezovalna črta – npr. vrstica, kjer se kliče clang++ brez argumenta -c. Morda bi bilo koristno, če lahko dejansko prilepite povezavo do celotnega izpisa.

tam

Originalni plakat
22. julij 2016
  • 26. julij 2016
Mislim, da argumentov prevajalnika ni mogoče spremeniti. Lahko to storim s pozivom.
Tukaj je celoten rezultat (je zelo zelo dolg! 100.000 vrstic): http://textup.fr/171939hC


Uredi: prevedel sem s pozivom, tako da imam več vrstic na izhodu, zadnje vrstice pa so zanimive:


Nedefinirani simboli za arhitekturo x86_64:

Koda: |_+_| Nazadnje uredil moderator: 26. julij 2016 C

cqexbesd

4. junij 2009
Nemčija
  • 26. julij 2016
Mislim, da je 100K izhoda za gradnjo iz česar koli drugega kot najbolj zapletenega sistema verjetno znak, da so šle stvari nekje narobe - toda to je bolj splošen komentar o stanju v industriji.

Nazaj k vaši specifični težavi. Ne vidim napak pri povezovanju, ki ste jih objavili v 'polnem izpisu', vendar je videti, da gre za navadne napake povezovalnika. Kot na drugih platformah lahko uporabite nm (ali Google), da poiščete, kje so ti simboli definirani in zdi se, da je v /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation zame (vendar imam zelo stari mac, tako da morda ne bo res za vas).

Ne bi se povezali neposredno s to knjižnico. Poskusite dodati kodo: |_+_| do vaših povezovalnih zastav.

tam

Originalni plakat
22. julij 2016
  • 27. julij 2016
Ja, prav imaš !! Najlepša hvala, zdaj lahko sestavim! S to težavo sem se soočal 3 tedne! Najlepša hvala ! Z

zibby

5. februar 2019
  • 5. februar 2019
cqexbesd je rekel: Mislim, da je 100K izhoda za gradnjo iz česar koli drugega kot najbolj zapletenega sistema verjetno znak, da so šle stvari nekje narobe - toda to je bolj splošen komentar o stanju v industriji.

Nazaj k vaši specifični težavi. Ne vidim napak pri povezovanju, ki ste jih objavili v 'polnem izpisu', vendar je videti, da gre za navadne napake povezovalnika. Kot na drugih platformah lahko uporabite nm (ali Google), da poiščete, kje so ti simboli definirani in zdi se, da je v /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation zame (vendar imam zelo stari mac, tako da morda ne bo res za vas).

Ne bi se povezali neposredno s to knjižnico. Poskusite dodati kodo: |_+_| do vaših povezovalnih zastav.
Z

zibby

5. februar 2019
  • 5. februar 2019
zdravo fantje ... naletel sem na zelo podoben problem ... vendar uporabljam terminal za prevajanje ... ali mi lahko kdo pomaga, kako lahko naredim enako rešitev v primeru terminala?

imam pripravljeno datoteko ./configure in teče gladko, vendar dobim ffi... sorodno 'simboli niso najdeni ...' in nekaj, kar je povezano s povezovalnikom, ko zaženem make

okieiam

17. december 2016
  • 8. februar 2019
zibbi je rekel: zdravo fantje ... naletel sem na zelo podoben problem ... vendar uporabljam terminal za prevajanje ... ali mi lahko kdo pomaga, kako lahko naredim enako rešitev v primeru terminala?

imam pripravljeno datoteko ./configure in teče gladko, vendar dobim ffi... sorodno 'simboli niso najdeni ...' in nekaj, kar je povezano s povezovalnikom, ko zaženem make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure