Kita

„Mac“ klaidos simbolis (-iai) nerastas (-i) architektūrai x86_64

Ten

Originalus plakatas
2016 m. liepos 22 d
  • 2016 m. liepos 22 d
Sveiki visi,

Aš dirbu su projektu, kurį sudaro „Windows“ programos kompiliavimas „Mac“. Paraiška parašyta C++ su Qt. Jį sudaro bibliotekos ir pagrindinis projektas:
http://hpics.li/d8bb2ec
Projektas naudoja išorinę biblioteką ODA .dwg ir .dgn failams valdyti.
Problema ta, kai kompiliuoju pirmąją biblioteką (MdCore), gaunu klaidą: simbolis (-iai) nerastas architektūrai x86_64.
Iš pradžių prie qmake argumento pridėjau -stdlib=libstdc++, bet Qt man sugeneravo 0 baitų failus, todėl tai nebuvo sprendimas.
Išbandžiau skirtingas ODA bibliotekos versijas: 32 bitų, 64 bitų OSX 10.7 ir 10.11. (Mano „Mac“ veikia OSX 10.11)
Savo bibliotekose sukūriau komandą „failas“ ir čia išvestis:

:
.a: dabartinė ar archyvo atsitiktinė biblioteka

.dylib:
Mach-0 universalus dvejetainis su 2 architektūromis
(skirta architektūrai x68_64): Mach-0 64 bitų dinamiškai susieta bendrinama biblioteka x86_64
(skirta architektūrai i386): Mach-0 dinamiškai susieta bendrinama biblioteka i386

Bandžiau kompiliuoti 32 ir 64 bitais, bet tai nieko nekeičia. Dvi savaites kenčiu nuo šios problemos ir nežinau, ką daryti

Sukūriau temą Qt forume, gal rasite daugiau informacijos:
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
Jei kas nors žinotų ar ką nors išeitų, man bus įdomu

Dėkoju ! C

cqexbesd

2009 m. birželio 4 d


Vokietija
  • 2016 m. liepos 22 d
Nieko nežinau apie qmake, bet gal tiesiog parašyk kokias kompiliatoriaus komandas turi kompiliuoti ir gal kas nors pamatys, kas negerai.

Ten

Originalus plakatas
2016 m. liepos 22 d
  • 2016 m. liepos 22 d
Sveiki, cqexbesd, ačiū už atsakymą, čia yra kūrimo išvesties pradžia:

17:34:10: Pradžia : '/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: Procesas „/Users/developpement/Qt/5.7/clang_64/bin/qmake“ baigtas įprastai

17:34:10: Pradžia: '/usr/bin/make'

... C

cqexbesd

2009 m. birželio 4 d
Vokietija
  • 2016 m. liepos 24 d
Aš turėjau omenyje tai, kad qmake yra tik įrankis kompiliatoriui iškviesti. Ar galite rasti eilutę, kurioje qmake iškviečia kompiliatorių? Tikėtina, kad jis neteisingai iškviečia, arba viskas veiks. Tai bent nuo ko pradėti.

Ten

Originalus plakatas
2016 m. liepos 22 d
  • 2016 m. liepos 25 d
Manau, kad čia:
Kodas: |_+_|
savo kompiliavimo išvestyje turiu tas eilutes kelis kartus, bet pasikeičia tik paskutinė eilutė (keičiasi failo pavadinimas)

Redaguoti: čia yra tos pačios eilutės, bet su tarpais tarp jų
Kodas: |_+_| Paskutinį kartą redagavo moderatorius: 2016 m. liepos 25 d C

cqexbesd

2009 m. birželio 4 d
Vokietija
  • 2016 m. liepos 25 d
Taip pat turėtų būti susiejimo linija – pvz. eilutė, kurioje clang++ iškviečiama be argumento -c. Gali būti naudinga, jei iš tikrųjų galite įklijuoti nuorodą į visą išvestį.

Ten

Originalus plakatas
2016 m. liepos 22 d
  • 2016 m. liepos 26 d
Nemanau, kad įmanoma pakeisti kompiliatoriaus argumentus. Galiu tai padaryti su raginimu.
Štai visa produkcija (ji labai labai ilga! 100 000 eilučių): http://textup.fr/171939hC


Redaguoti: sukūriau su raginimu, todėl išvestyje turiu daugiau eilučių, o paskutinės eilutės yra įdomios:


Neapibrėžti simboliai architektūrai x86_64:

Kodas: |_+_| Paskutinį kartą redagavo moderatorius: 2016 m. liepos 26 d C

cqexbesd

2009 m. birželio 4 d
Vokietija
  • 2016 m. liepos 26 d
Manau, kad 100 000 išvesties, kurią galima sukurti naudojant bet ką, išskyrus pačią sudėtingiausią sistemą, tikriausiai yra ženklas, kad viskas kažkur suklydo – bet tai yra bendresnis komentaras apie pramonės būklę.

Grįžkime prie konkrečios problemos. Nematau susiejimo klaidų, kurias paskelbėte „visoje išvestyje“, tačiau atrodo, kad tai tik įprastos susiejimo klaidos. Kaip ir kitose platformose, galite naudoti nm (arba „Google“), kad surastumėte, kur tie simboliai yra apibrėžti, ir atrodo, kad jie yra /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (bet aš turiu labai senas „Mac“, todėl tai gali būti netiesa jums).

Tiesiogiai nesusietumėte su ta biblioteka. Pabandykite pridėti kodą: |_+_| prie savo nuorodų vėliavėlių.

Ten

Originalus plakatas
2016 m. liepos 22 d
  • 2016 m. liepos 27 d
Taip, tu teisus !! Labai ačiū, kad dabar galiu surinkti! Aš susidūriau su šia problema 3 savaites! Labai ačiū ! SU

zibbi

2019 m. vasario 5 d
  • 2019 m. vasario 5 d
cqexbesd pasakė: Manau, kad 100 000 išvesties, kurią galima sukurti naudojant bet ką, išskyrus pačią sudėtingiausią sistemą, tikriausiai yra ženklas, kad kažkas kažkur suklydo – bet tai yra bendresnis komentaras apie pramonės būklę.

Grįžkime prie konkrečios problemos. Nematau susiejimo klaidų, kurias paskelbėte „visoje išvestyje“, tačiau atrodo, kad tai tik įprastos susiejimo klaidos. Kaip ir kitose platformose, galite naudoti nm (arba „Google“), kad surastumėte, kur tie simboliai yra apibrėžti, ir atrodo, kad jie yra /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (bet aš turiu labai senas „Mac“, todėl tai gali būti netiesa jums).

Tiesiogiai nesusietumėte su ta biblioteka. Pabandykite pridėti kodą: |_+_| prie savo nuorodų vėliavėlių.
SU

zibbi

2019 m. vasario 5 d
  • 2019 m. vasario 5 d
Sveiki, vaikinai ... susidūriau su labai panašia problema ... bet aš naudoju terminalą kompiliavimui ... ar kas nors gali padėti, kaip galėčiau padaryti tą patį sprendimą terminalo atveju?

Turiu paruoštą ./configure failą ir jis veikia sklandžiai, bet gaunu ffi... susiję 'simboliai nerasta...' ir kažkas, kas susiję su nuoroda, kai paleidžiu make

okeiam

2016 m. gruodžio 17 d
  • 2019 m. vasario 8 d
zibbi pasakė: Sveiki, vaikinai... aš susidūriau su labai panašia problema... bet naudoju terminalą kompiliavimui... ar kas nors gali padėti, kaip galėčiau padaryti tą patį sprendimą terminalo atveju?

Turiu paruoštą ./configure failą ir jis veikia sklandžiai, bet gaunu ffi... susiję 'simboliai nerasta...' ir kažkas, kas susiję su nuoroda, kai paleidžiu make
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure