Egyéb

Mac hibaszimbólum(ok) nem található(k) az x86_64 architektúrához

Amott

Eredeti plakát
2016. július 22
  • 2016. július 22
Helló mindenki,

Egy olyan projekten dolgozom, amely abból áll, hogy Windows-alkalmazást fordítok Mac-en. Az alkalmazás C++ nyelven íródott Qt-vel. A könyvtárakból és a fő projektből áll:
http://hpics.li/d8bb2ec
A projekt egy külső ODA könyvtárat használ a .dwg és .dgn fájlok kezelésére.
A probléma az, hogy amikor az első könyvtárat (MdCore) fordítom, hibaüzenetet kapok: a szimbólum(ok) nem találhatók az x86_64 architektúrához.
Eleinte hozzáadtam a -stdlib=libstdc++-t a qmake argumentumhoz, de a Qt 0 bájtos fájlokat generált, így nem ez volt a megoldás.
Kipróbáltam az ODA könyvtár különböző verzióit: 32 bites, 64 bites OSX 10.7 és 10.11 esetén. (A Mac gépemen OSX 10.11)
Kiadtam a 'file' parancsot a könyvtáraimban, és itt a kimenet:

:
.a: aktuális ar archív véletlenszerű könyvtár

.dylib:
Mach-0 univerzális bináris 2 architektúrával
(x68_64 architektúrához): Mach-0 64 bites dinamikusan csatolt megosztott könyvtár x86_64
(i386 architektúrához): Mach-0 dinamikusan csatolt megosztott könyvtár i386

Próbáltam 32 és 64 biten is fordítani, de nem változott semmin. Két hete vagyok ezen a problémán, nem tudom, mit tehetnék

Csináltam egy témát a Qt fórumon, hátha találsz több információt:
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
Ha valakinek van ötlete vagy megoldása érdekelne

Kösz ! C

cqexbesd

2009. június 4


Németország
  • 2016. július 22
Nem tudok semmit a qmake-ről, de talán csak írd le, hogy mi a fordítóparancsod a fordításhoz, és talán valaki látni fogja, hogy mi a hiba.

Amott

Eredeti plakát
2016. július 22
  • 2016. július 22
szia, cqexbesd! Köszönjük válaszát, itt van a build kimenetének kezdete:

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

17:34:10: A '/Users/developpement/Qt/5.7/clang_64/bin/qmake' folyamat megfelelően befejeződött

17:34:10: Kezdés : '/usr/bin/make'

... C

cqexbesd

2009. június 4
Németország
  • 2016. július 24
Arra gondoltam, hogy a qmake csak egy eszköz a fordító meghívására. Megtalálod azt a sort, ahol a qmake meghívja a fordítót? Valószínűleg nem hívja meg megfelelően, különben a dolgok működnének. Legalább van valahol kezdeni.

Amott

Eredeti plakát
2016. július 22
  • 2016. július 25
Szerintem itt van:
Kód: |_+_|
a fordításomban többször szerepelnek ezek a sorok, de csak az utolsó sor változik (a fájl neve megváltozik)

Szerkesztés: itt ugyanazok a sorok vannak, csak szóközökkel
Kód: |_+_| Utoljára moderátor szerkesztette: 2016. július 25 C

cqexbesd

2009. június 4
Németország
  • 2016. július 25
Legyen egy összekötő vonal is - pl. egy sor, ahol a clang++ a -c argumentum nélkül kerül meghívásra. Hasznos lehet, ha beilleszthet egy hivatkozást a teljes kimenetre.

Amott

Eredeti plakát
2016. július 22
  • 2016. július 26
Nem hiszem, hogy lehetséges megváltoztatni a fordító argumentumait. Megtehetem a felszólítással.
Íme a teljes kimenet (nagyon-nagyon hosszú! 100 000 sor): http://textup.fr/171939hC


Szerkesztés: A prompttal fordítottam, így több sorom van a kimeneten, és az utolsó sorok érdekesek:


Meghatározatlan szimbólumok az x86_64 architektúrához:

Kód: |_+_| Utoljára moderátor szerkesztette: 2016. július 26 C

cqexbesd

2009. június 4
Németország
  • 2016. július 26
Úgy gondolom, hogy a 100 000 kimenet a legbonyolultabb rendszeren kívül bármi másból való összeállításhoz valószínűleg annak a jele, hogy a dolgok valahol elromlottak – de ez egy általánosabb megjegyzés az iparág helyzetéről.

Vissza a konkrét problémádhoz. Nem látom az általad közzétett linkelési hibákat a 'teljes kimenetben', de ez csak egy szokásos linker-hibának tűnik. Más platformokhoz hasonlóan az nm (vagy a Google) segítségével megkeresheti, hol vannak meghatározva ezek a szimbólumok, és számomra úgy tűnik, hogy a /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation mappában található (de nekem nagyon régi mac, így lehet, hogy nem igaz rád).

Nem kapcsolódna közvetlenül ehhez a könyvtárhoz. Próbálja meg hozzáadni a következő kódot: |_+_| a linker zászlóidhoz.

Amott

Eredeti plakát
2016. július 22
  • 2016. július 27
Igen, igazad van !! Köszönöm szépen, most már össze tudom állítani! 3 hétig küzdöttem ezzel a problémával! Nagyon köszönöm ! VAL VEL

zibby

2019. február 5
  • 2019. február 5
cqexbesd azt mondta: Azt hiszem, a 100 000 kimenet a legbonyolultabb rendszeren kívül bármi másból való összeállításhoz valószínűleg annak a jele, hogy a dolgok valahol elromlottak – de ez egy általánosabb megjegyzés az iparág helyzetéről.

Vissza a konkrét problémádhoz. Nem látom az általad közzétett linkelési hibákat a 'teljes kimenetben', de ez csak egy szokásos linker-hibának tűnik. Más platformokhoz hasonlóan az nm (vagy a Google) segítségével megkeresheti, hol vannak meghatározva ezek a szimbólumok, és számomra úgy tűnik, hogy a /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation mappában található (de nekem nagyon régi mac, így lehet, hogy nem igaz rád).

Nem kapcsolódna közvetlenül ehhez a könyvtárhoz. Próbálja meg hozzáadni a következő kódot: |_+_| a linker zászlóidhoz.
VAL VEL

zibby

2019. február 5
  • 2019. február 5
sziasztok ... én is belefutottam egy nagyon hasonló problémába... de a terminált használom a fordításhoz... tudna valaki segíteni, hogy terminál esetén hogyan tudom megcsinálni ugyanezt a megoldást?

Készen van egy ./configure fájlom, és simán fut, de azt kapom, hogy ffi... kapcsolódó 'szimbólumok nem találhatók...' és valami köze van a linkerhez a make futtatásakor

okeiam

2016. december 17
  • 2019. február 8
zibbi mondta: sziasztok srácok... én is belefutottam egy nagyon hasonló problémába... de a terminált használom a fordításhoz... tudna valaki segíteni, hogy terminál esetén hogyan tudom megcsinálni ugyanezt?

Készen van egy ./configure fájlom, és simán fut, de azt kapom, hogy ffi... kapcsolódó 'szimbólumok nem találhatók...' és valami köze van a linkerhez a make futtatásakor
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure