Altro

Simboli di errore Mac non trovati per l'architettura x86_64

Manifesto originale
22 luglio 2016
  • 22 luglio 2016
Ciao a tutti,

Sto lavorando ad un progetto che consiste nella compilazione di un'applicazione Windows su Mac. L'applicazione è scritta in C++ con Qt. È composto da librerie e dal progetto principale:
http://hpics.li/d8bb2ec
Il progetto utilizza una libreria esterna, ODA, per gestire i file .dwg e .dgn.
Il problema è che quando compilo la prima libreria (MdCore), ricevo un errore: simbolo/i non trovato/i per l'architettura x86_64.
All'inizio ho aggiunto -stdlib=libstdc++ all'argomento qmake ma Qt mi ha generato file a 0 byte, quindi non era la soluzione.
Ho provato diverse versioni della libreria ODA: 32 bit, 64 bit per OSX 10.7 e 10.11. (Il mio Mac è su OSX 10.11)
Ho fatto il comando 'file' sulle mie librerie e qui l'output:

:
.a: libreria casuale dell'archivio ar corrente

.dylib:
Binario universale Mach-0 con 2 architetture
(per l'architettura x68_64): Mach-0 libreria condivisa collegata dinamicamente a 64 bit x86_64
(per l'architettura i386): libreria condivisa collegata dinamicamente Mach-0 i386

Ho provato a compilare a 32 e 64 bit ma non cambia nulla. Ho questo problema da due settimane non so cosa posso fare

Ho creato un argomento sul forum Qt, forse puoi trovare maggiori informazioni:
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
Se qualcuno ha un indizio o una soluzione sarò interessato

Grazie ! C

cqexbesd

4 giugno 2009


Germania
  • 22 luglio 2016
Non so nulla di qmake ma forse dovresti semplicemente postare quali sono i tuoi comandi del compilatore per compilare e forse qualcuno sarà in grado di vedere cosa c'è che non va.

Manifesto originale
22 luglio 2016
  • 22 luglio 2016
ciao cqexbesd, grazie per la tua risposta, ecco l'inizio dell'output della build:

17:34:10: Begin: '/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: Il processo '/Users/developpement/Qt/5.7/clang_64/bin/qmake' è terminato normalmente

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

... C

cqexbesd

4 giugno 2009
Germania
  • 24 luglio 2016
Quello che intendevo era che qmake è solo uno strumento per chiamare il compilatore. Riesci a trovare la riga in cui qmake chiama il compilatore? Presumibilmente non lo sta chiamando correttamente o le cose funzionerebbero. È almeno da qualche parte per iniziare.

Manifesto originale
22 luglio 2016
  • 25 luglio 2016
Penso che sia qui:
Codice: |_+_|
nel mio output di compilazione ho quelle righe più volte, ma cambia solo l'ultima riga (il nome del file cambia)

Modifica: qui ci sono le stesse linee ma con spazi tra di loro
Codice: |_+_| Ultima modifica di un moderatore: 25 luglio 2016 C

cqexbesd

4 giugno 2009
Germania
  • 25 luglio 2016
Dovrebbe esserci anche una linea di collegamento, ad es. una riga in cui viene chiamato clang++ senza l'argomento -c. Potrebbe essere utile incollare un collegamento all'intero output.

Manifesto originale
22 luglio 2016
  • 26 luglio 2016
Non credo sia possibile modificare gli argomenti del compilatore. Posso farlo con il prompt.
Ecco l'output completo (è molto, molto lungo! 100.000 righe): http://textup.fr/171939hC


Modifica: ho compilato con il prompt in modo da avere più righe sull'output e le ultime righe sono interessanti:


Simboli non definiti per l'architettura x86_64:

Codice: |_+_| Ultima modifica di un moderatore: 26 luglio 2016 C

cqexbesd

4 giugno 2009
Germania
  • 26 luglio 2016
Penso che l'output di 100K per una build da qualsiasi cosa tranne il sistema più complicato sia probabilmente un segno che le cose sono andate male da qualche parte, ma questo è un commento più generale sullo stato del settore.

Torna al tuo problema specifico. Non vedo gli errori di collegamento che hai postato nell''output completo', tuttavia questo sembra essere solo un normale errore del linker. Come su altre piattaforme, puoi usare nm (o Google) per trovare dove sono definiti quei simboli e sembra essere in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation per me (ma ho un vecchio mac quindi potrebbe non essere vero per te).

Non ti collegheresti direttamente a quella libreria. Prova ad aggiungere il codice: |_+_| ai tuoi flag di linker.

Manifesto originale
22 luglio 2016
  • 27 luglio 2016
Si hai ragione !! Grazie mille ora posso compilare! Stavo affrontando questo problema da 3 settimane! Molte grazie ! INSIEME A

zibby

5 febbraio 2019
  • 5 febbraio 2019
cqexbesd ha detto: Penso che l'output di 100K per una build da qualsiasi cosa tranne il sistema più complicato sia probabilmente un segno che le cose sono andate male da qualche parte, ma questo è un commento più generale sullo stato del settore.

Torna al tuo problema specifico. Non vedo gli errori di collegamento che hai postato nell''output completo', tuttavia questo sembra essere solo un normale errore del linker. Come su altre piattaforme, puoi usare nm (o Google) per trovare dove sono definiti quei simboli e sembra essere in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation per me (ma ho un vecchio mac quindi potrebbe non essere vero per te).

Non ti collegheresti direttamente a quella libreria. Prova ad aggiungere il codice: |_+_| ai tuoi flag di linker.
INSIEME A

zibby

5 febbraio 2019
  • 5 febbraio 2019
ciao ragazzi ... ho riscontrato un problema molto simile ... ma sto usando il terminale per compilare ... qualcuno può aiutarmi per favore su come posso fare la stessa soluzione in caso di terminale?

ho un file ./configure pronto e funziona senza problemi ma ottengo ffi... relativi a 'simboli non trovati ...' e qualcosa a che fare con il linker quando eseguo make

okieiam

17 dicembre 2016
  • 8 febbraio 2019
zibbi ha detto: ciao ragazzi ... ho riscontrato un problema molto simile ... ma sto usando il terminale per compilare ... qualcuno può aiutarmi per favore su come posso fare la stessa soluzione in caso di terminale?

ho un file ./configure pronto e funziona senza problemi ma ottengo ffi... relativi a 'simboli non trovati ...' e qualcosa a che fare con il linker quando eseguo make
env CPPFLAGS='-I/home/pippo/sw/include' LDFLAGS='-L/home/pippo/sw/lib/' ./configure