Annen

Mac-feilsymbol(er) ble ikke funnet for arkitektur x86_64

Der

Original plakat
22. juli 2016
  • 22. juli 2016
Hei alle sammen,

Jeg jobber med et prosjekt som består i å kompilere et Windows-program på Mac. Søknaden er skrevet i C++ med Qt. Det er satt sammen med biblioteker og hovedprosjektet:
http://hpics.li/d8bb2ec
Prosjektet bruker et eksternt bibliotek, ODA, for å administrere .dwg- og .dgn-filer.
Problemet er når jeg kompilerer det første biblioteket (MdCore), får jeg en feilmelding: symbol(er) ikke funnet for arkitektur x86_64.
Først la jeg til -stdlib=libstdc++ til qmake-argumentet, men Qt genererte meg 0 byte-filer, så det var ikke løsningen.
Jeg har prøvd en annen versjon av ODA-biblioteket: 32bit, 64bit for OSX 10.7 og 10.11. (Min Mac er på OSX 10.11)
Jeg laget kommandoen 'fil' på bibliotekene mine og her utdata:

:
.a: gjeldende arkiv tilfeldig bibliotek

.dylib:
Mach-0 universell binær med 2 arkitekturer
(for arkitektur x68_64): Mach-0 64-bits dynamisk koblet delt bibliotek x86_64
(for arkitektur i386): Mach-0 dynamisk koblet delt bibliotek i386

Jeg har prøvd å kompilere på 32 og 64bit, men det endrer ingenting. Jeg har hatt dette problemet i to uker, jeg vet ikke hva jeg kan gjøre

Jeg har laget et emne på Qt-forumet, kanskje du kan finne mer informasjon:
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
Hvis noen har en anelse eller en løsning vil jeg være interessert

Takk ! C

cqexbesd

4. juni 2009


Tyskland
  • 22. juli 2016
Jeg vet ikke noe om qmake, men kanskje du bare bør legge ut hva kompilatorkommandoene dine skal kompilere og kanskje noen kan se hva som er galt.

Der

Original plakat
22. juli 2016
  • 22. juli 2016
hei cqexbesd, takk for svaret ditt, her er begynnelsen på byggeutgangen:

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

17:34:10: Prosessen '/Users/developpement/Qt/5.7/clang_64/bin/qmake' er fullført normalt

17:34:10: Start : '/usr/bin/make'

... C

cqexbesd

4. juni 2009
Tyskland
  • 24. juli 2016
Det jeg mente var at qmake bare er et verktøy for å kalle kompilatoren. Finner du linjen der qmake kaller kompilatoren? Antagelig kaller den den ikke riktig, ellers vil ting fungere. Det er i det minste et sted å begynne.

Der

Original plakat
22. juli 2016
  • 25. juli 2016
Jeg tror det er her:
Kode: |_+_|
i min kompileringsutgang har jeg disse linjene flere ganger, men bare den siste linjen endres (navnet på filen endres)

Edit: her er de samme linjene, men med mellomrom mellom dem
Kode: |_+_| Sist redigert av en moderator: 25. juli 2016 C

cqexbesd

4. juni 2009
Tyskland
  • 25. juli 2016
Det bør også være en koblingslinje - f.eks. en linje der clang++ kalles uten -c-argumentet. Det kan være nyttig hvis du kan lime inn en lenke til hele utdataene.

Der

Original plakat
22. juli 2016
  • 26. juli 2016
Jeg tror ikke det er mulig å endre kompilatorens argumenter. Jeg kan gjøre det med ledeteksten.
Her er hele utgangen (den er veldig veldig lang! 100.000 linjer): http://textup.fr/171939hC


Edit: Jeg kompilerte med ledeteksten slik at jeg har flere linjer på utgangen, og de siste linjene er interessante:


Udefinerte symboler for arkitektur x86_64:

Kode: |_+_| Sist redigert av en moderator: 26. juli 2016 C

cqexbesd

4. juni 2009
Tyskland
  • 26. juli 2016
Jeg tror 100K utgang for en bygging fra alt annet enn det mest kompliserte systemet sannsynligvis er et tegn på at ting har gått galt et sted - men det er en mer generell kommentar om bransjens tilstand.

Tilbake til ditt spesifikke problem. Jeg ser ikke koblingsfeilene du postet i 'full utgang', men dette ser bare ut til å være en vanlig linkerfeil. Som på andre plattformer kan du bruke nm (eller Google) for å finne hvor disse symbolene er definert, og det ser ut til å være i /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation for meg (men jeg har en veldig gammel mac så det er kanskje ikke sant for deg).

Du vil ikke koble direkte til det biblioteket. Prøv å legge til kode: |_+_| til linkerflaggene dine.

Der

Original plakat
22. juli 2016
  • 27. juli 2016
Ja du har rett !! Tusen takk, jeg kan kompilere nå! Jeg sto overfor dette problemet i 3 uker! Takk så mye ! MED

zibby

5. februar 2019
  • 5. februar 2019
cqexbesd sa: Jeg tror at 100K utgang for en konstruksjon fra alt annet enn det mest kompliserte systemet sannsynligvis er et tegn på at ting har gått galt et sted - men det er en mer generell kommentar om bransjens tilstand.

Tilbake til ditt spesifikke problem. Jeg ser ikke koblingsfeilene du postet i 'full utgang', men dette ser bare ut til å være en vanlig linkerfeil. Som på andre plattformer kan du bruke nm (eller Google) for å finne hvor disse symbolene er definert, og det ser ut til å være i /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation for meg (men jeg har en veldig gammel mac så det er kanskje ikke sant for deg).

Du vil ikke koble direkte til det biblioteket. Prøv å legge til kode: |_+_| til linkerflaggene dine.
MED

zibby

5. februar 2019
  • 5. februar 2019
hei folkens ... jeg har kjørt inn i et veldig likt problem ... men jeg bruker terminalen til å kompilere ... kan noen vennligst hjelpe med hvordan jeg kan gjøre den samme løsningen i tilfelle terminal?

jeg har en ./configure-fil klar og den kjører jevnt, men jeg får ffi... relaterte 'symboler ikke funnet ...' og noe som har med linkeren å gjøre når jeg kjører make

okieiam

17. desember 2016
  • 8. februar 2019
zibbi sa: hei folkens ... jeg har støtt på et veldig likt problem ... men jeg bruker terminalen til å kompilere ... kan noen vennligst hjelpe med hvordan jeg kan gjøre den samme løsningen i tilfelle terminal?

jeg har en ./configure-fil klar og den kjører jevnt, men jeg får ffi... relaterte 'symboler ikke funnet ...' og noe som har med linkeren å gjøre når jeg kjører make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure