Altres

No s'han trobat símbols d'error de Mac per a l'arquitectura x86_64

Allà

Cartell original
Jul 22, 2016
  • Jul 22, 2016
Hola a tothom,

Estic treballant en un projecte que consisteix a compilar una aplicació de Windows a Mac. L'aplicació està escrita en C++ amb Qt. Està compost per biblioteques i el projecte principal:
http://hpics.li/d8bb2ec
El projecte utilitza una biblioteca externa, ODA, per gestionar fitxers .dwg i .dgn.
El problema és que quan compile la primera biblioteca (MdCore), em surt un error: no s'han trobat símbols per a l'arquitectura x86_64.
Al principi vaig afegir -stdlib=libstdc++ a l'argument qmake, però Qt em va generar fitxers de 0 bytes, de manera que no era la solució.
He provat diferents versions de la biblioteca ODA: 32 bits, 64 bits per a OSX 10.7 i 10.11. (El meu Mac està a OSX 10.11)
Vaig fer l'ordre 'fitxer' a les meves biblioteques i aquí la sortida:

:
.a: biblioteca aleatòria d'arxiu ar actual

.dylib:
Binari universal Mach-0 amb 2 arquitectures
(per a l'arquitectura x68_64): biblioteca compartida enllaçada dinàmicament Mach-0 de 64 bits x86_64
(per a l'arquitectura i386): biblioteca compartida i386 enllaçada dinàmicament Mach-0

He provat de compilar en 32 i 64 bits però no canvia res. Estic amb aquest problema durant dues setmanes i no sé què puc fer

He fet un tema al fòrum de Qt potser podeu trobar més informació:
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
Si algú té una pista o una solució m'interessarà

Gràcies! C

cqexbesd

4 de juny de 2009


Alemanya
  • Jul 22, 2016
No sé res sobre qmake, però potser hauríeu de publicar quines són les ordres del compilador per compilar i potser algú podrà veure què passa.

Allà

Cartell original
Jul 22, 2016
  • Jul 22, 2016
hola cqexbesd, gràcies per la teva resposta, aquí està l'inici de la sortida de compilació:

17:34:10: Inici: '/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: El procés '/Users/developpement/Qt/5.7/clang_64/bin/qmake' ha finalitzat normalment

17:34:10: Comença: '/usr/bin/make'

... C

cqexbesd

4 de juny de 2009
Alemanya
  • Jul 24, 2016
El que volia dir és que qmake és només una eina per trucar al compilador. Pots trobar la línia on qmake crida al compilador? És de suposar que no l'està cridant correctament o les coses estarien funcionant. Almenys és un lloc per començar.

Allà

Cartell original
Jul 22, 2016
  • Jul 25, 2016
Crec que és aquí:
Codi: |_+_|
a la meva sortida de compilació tinc aquestes línies diverses vegades, però només canvia l'última línia (el nom del fitxer canvia)

Edita: aquí hi ha les mateixes línies però amb espais entre elles
Codi: |_+_| Darrera edició per un moderador: 25 de juliol de 2016 C

cqexbesd

4 de juny de 2009
Alemanya
  • Jul 25, 2016
També hi hauria d'haver una línia d'enllaç, p. una línia on s'anomena clang++ sense l'argument -c. De fet, pot ser útil si podeu enganxar un enllaç a tota la sortida.

Allà

Cartell original
Jul 22, 2016
  • Jul 26, 2016
No crec que sigui possible canviar els arguments del compilador. Ho puc fer amb la indicació.
Aquí teniu la sortida completa (és molt llarg! 100.000 línies): http://textup.fr/171939hC


Edita: vaig compilar amb l'indicador, així que tinc més línies a la sortida, i les darreres línies són interessants:


Símbols no definits per a l'arquitectura x86_64:

Codi: |_+_| Darrera edició per un moderador: 26 de juliol de 2016 C

cqexbesd

4 de juny de 2009
Alemanya
  • Jul 26, 2016
Crec que la sortida de 100K per a una compilació de qualsevol cosa menys del sistema més complicat és probablement un signe que les coses han anat malament en algun lloc, però aquest és un comentari més general sobre l'estat de la indústria.

Torneu al vostre problema específic. No veig els errors d'enllaç que heu publicat a la 'sortida completa', però sembla que són errors d'enllaç habituals. Com en altres plataformes, podeu utilitzar nm (o Google) per trobar on es defineixen aquests símbols i sembla que es troba a /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation per a mi (però tinc una Mac antic, així que pot ser que no sigui cert per a tu).

No enllaçaríeu directament amb aquesta biblioteca. Proveu d'afegir el codi: |_+_| a les vostres banderes d'enllaç.

Allà

Cartell original
Jul 22, 2016
  • Jul 27, 2016
Sí, tens raó !! Moltes gràcies ara puc compilar! Vaig estar enfrontant aquest problema durant 3 setmanes! Moltes gràcies ! AMB

zibby

Mar 5, 2019
  • Mar 5, 2019
cqexbesd va dir: Crec que la sortida de 100K per a una compilació de qualsevol cosa menys del sistema més complicat és probablement un signe que les coses han anat malament en algun lloc, però aquest és un comentari més general sobre l'estat de la indústria.

Torneu al vostre problema específic. No veig els errors d'enllaç que heu publicat a la 'sortida completa', però sembla que són errors d'enllaç habituals. Com en altres plataformes, podeu utilitzar nm (o Google) per trobar on es defineixen aquests símbols i sembla que es troba a /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation per a mi (però tinc una Mac antic, així que pot ser que no sigui cert per a tu).

No enllaçaríeu directament amb aquesta biblioteca. Proveu d'afegir el codi: |_+_| a les vostres banderes d'enllaç.
AMB

zibby

Mar 5, 2019
  • Mar 5, 2019
hola nois... m'he trobat amb un problema molt semblant... però estic fent servir el terminal per compilar... algú pot ajudar-me sobre com puc fer la mateixa solució en cas de terminal?

Tinc un fitxer ./configure preparat i funciona sense problemes, però em surt ffi... 'símbols no trobats...' relacionats i alguna cosa a veure amb l'enllaçador quan executo make

okieiam

17 de desembre de 2016
  • Mar 8, 2019
zibbi va dir: hola nois... m'he trobat amb un problema molt semblant... però estic utilitzant el terminal per compilar... algú pot ajudar-me sobre com puc fer la mateixa solució en cas de terminal?

Tinc un fitxer ./configure preparat i funciona sense problemes, però em surt ffi... 'símbols no trobats...' relacionats i alguna cosa a veure amb l'enllaçador quan executo make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure