Andet

Mac-fejlsymbol(er) blev ikke fundet for arkitektur x86_64

Der

Original plakat
22. juli 2016
  • 22. juli 2016
Hej allesammen,

Jeg arbejder på et projekt, der består i at kompilere et Windows-program på Mac. Ansøgningen er skrevet i C++ med Qt. Det er sammensat med biblioteker og hovedprojektet:
http://hpics.li/d8bb2ec
Projektet bruger et eksternt bibliotek, ODA, til at administrere .dwg- og .dgn-filer.
Problemet er, når jeg kompilerer det første bibliotek (MdCore), får jeg en fejlmeddelelse: symbol(er) ikke fundet for arkitektur x86_64.
Først tilføjede jeg -stdlib=libstdc++ til qmake-argumentet, men Qt genererede mig 0 byte-filer, så det var ikke løsningen.
Jeg har prøvet forskellige versioner af ODA-biblioteket: 32bit, 64bit til OSX 10.7 og 10.11. (Min Mac er på OSX 10.11)
Jeg lavede kommandoen 'fil' på mine biblioteker og her outputtet:

:
.a: nuværende arkiv tilfældigt bibliotek

.dylib:
Mach-0 universel binær med 2 arkitekturer
(til arkitektur x68_64): Mach-0 64-bit dynamisk linket delt bibliotek x86_64
(til arkitektur i386): Mach-0 dynamisk linket delt bibliotek i386

Jeg har forsøgt at kompilere på 32 og 64bit, men det ændrer ikke noget. Jeg har haft dette problem i to uger, jeg ved ikke, hvad jeg kan gøre

Jeg har lavet et emne på Qt-forummet, måske kan du finde mere information:
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 nogen har en anelse eller en løsning, vil jeg være interesseret

Tak! C

cqexbesd

4. juni 2009


Tyskland
  • 22. juli 2016
Jeg ved ikke noget om qmake, men måske skulle du bare poste, hvad dine kompileringskommandoer skal kompilere, og måske vil nogen kunne se, hvad der er galt.

Der

Original plakat
22. juli 2016
  • 22. juli 2016
hej cqexbesd, tak for dit svar, her er begyndelsen på byggeoutputtet:

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: Processen '/Users/developpement/Qt/5.7/clang_64/bin/qmake' er afsluttet normalt

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

... C

cqexbesd

4. juni 2009
Tyskland
  • 24. juli 2016
Hvad jeg mente var, at qmake kun er et værktøj til at kalde compileren. Kan du finde linjen, hvor qmake kalder compileren? Formentlig kalder den den ikke korrekt, ellers ville tingene fungere. Det er i hvert fald et sted at starte.

Der

Original plakat
22. juli 2016
  • 25. juli 2016
Jeg tror det er her:
Kode: |_+_|
i mit kompileringsoutput har jeg disse linjer flere gange, men kun den sidste linje ændres (navnet på filen ændres)

Edit: her er de samme linjer, men med mellemrum mellem dem
Kode: |_+_| Senest redigeret af en moderator: 25. juli 2016 C

cqexbesd

4. juni 2009
Tyskland
  • 25. juli 2016
Der skal også være en forbindelseslinje - f.eks. en linje hvor clang++ kaldes uden argumentet -c. Det kan være nyttigt, hvis du faktisk kan indsætte et link til hele outputtet.

Der

Original plakat
22. juli 2016
  • 26. juli 2016
Jeg tror ikke, det er muligt at ændre kompilatorens argumenter. Jeg kan gøre det med prompten.
Her er det fulde output (det er meget meget langt! 100.000 linjer): http://textup.fr/171939hC


Edit: Jeg kompilerede med prompten, så jeg har flere linjer på outputtet, og de sidste linjer er interessante:


Udefinerede symboler for arkitektur x86_64:

Kode: |_+_| Senest redigeret af en moderator: 26. juli 2016 C

cqexbesd

4. juni 2009
Tyskland
  • 26. juli 2016
Jeg tror, ​​at 100K output for en build fra alt andet end det mest komplicerede system nok er et tegn på, at tingene er gået galt et eller andet sted - men det er en mere generel kommentar om branchens tilstand.

Tilbage til dit specifikke problem. Jeg kan ikke se de sammenkædningsfejl, du postede i 'fuldt output', men dette ser ud til at være en almindelig linker-fejl. Som på andre platforme kan du bruge nm (eller Google) til at finde, hvor disse symboler er defineret, og det ser ud til at være i /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation for mig (men jeg har en meget gammel mac, så det er måske ikke sandt for dig).

Du ville ikke linke direkte til det bibliotek. Prøv at tilføje kode: |_+_| til dine linkerflag.

Der

Original plakat
22. juli 2016
  • 27. juli 2016
Ja, du har ret !! Mange tak, jeg kan kompilere nu! Jeg stod med dette problem i 3 uger! Mange tak ! MED

zibby

5. februar 2019
  • 5. februar 2019
cqexbesd sagde: Jeg tror, ​​at 100K output for en build fra alt andet end det mest komplicerede system nok er et tegn på, at tingene er gået galt et eller andet sted - men det er en mere generel kommentar om branchens tilstand.

Tilbage til dit specifikke problem. Jeg kan ikke se de sammenkædningsfejl, du postede i 'fuldt output', men dette ser ud til at være en almindelig linker-fejl. Som på andre platforme kan du bruge nm (eller Google) til at finde, hvor disse symboler er defineret, og det ser ud til at være i /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation for mig (men jeg har en meget gammel mac, så det er måske ikke sandt for dig).

Du ville ikke linke direkte til det bibliotek. Prøv at tilføje kode: |_+_| til dine linkerflag.
MED

zibby

5. februar 2019
  • 5. februar 2019
hej gutter ... jeg har løbet ind i et meget lignende problem ... men jeg bruger terminalen til at kompilere ... kan nogen venligst hjælpe med hvordan jeg kan gøre den samme løsning i tilfælde af terminal?

jeg har en ./configure-fil klar, og den kører problemfrit, men jeg får ffi... relaterede 'symboler ikke fundet ...' og noget at gøre med linkeren, når jeg kører make

okieiam

17. december 2016
  • 8. februar 2019
zibbi sagde: hej gutter ... jeg har løb ind i et meget lignende problem ... men jeg bruger terminalen til at kompilere ... kan nogen venligst hjælpe med hvordan jeg kan gøre den samme løsning i tilfælde af terminal?

jeg har en ./configure-fil klar, og den kører problemfrit, men jeg får ffi... relaterede 'symboler ikke fundet ...' og noget at gøre med linkeren, når jeg kører make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure