Başka

x86_64 mimarisi için Mac Hata sembolleri bulunamadı

Orası

Orijinal afiş
22 Tem 2016
  • 22 Tem 2016
Selam millet,

Mac'te bir Windows uygulaması derlemekten oluşan bir proje üzerinde çalışıyorum. Uygulama C++ ile Qt ile yazılmıştır. Kütüphaneler ve ana proje ile oluşur:
http://hpics.li/d8bb2ec
Proje, .dwg ve .dgn dosyalarını yönetmek için harici bir kitaplık olan ODA'yı kullanır.
Sorun şu ki, ilk kitaplığı (MdCore) derlerken bir hata alıyorum: x86_64 mimarisi için sembol(ler) bulunamadı.
İlk başta qmake argümanına -stdlib=libstdc++ ekledim ama Qt bana 0 baytlık dosyalar oluşturdu, bu yüzden çözüm olmadı.
ODA kitaplığının farklı sürümlerini denedim: OSX 10.7 ve 10.11 için 32bit, 64bit. (Mac'im OSX 10.11'de)
Kitaplıklarımda 'dosya' komutunu yaptım ve burada çıktı:

:
.a: mevcut ar arşivi rastgele kitaplığı

.dylib:
2 mimariye sahip Mach-0 evrensel ikili
(x68_64 mimarisi için): Mach-0 64-bit dinamik olarak bağlantılı paylaşımlı kitaplık x86_64
(mimari i386 için): Mach-0 dinamik olarak bağlantılı paylaşılan kitaplık i386

32 ve 64bit'te derlemeye çalıştım ama hiçbir şeyi değiştirmiyor. İki haftadır bu problemdeyim ne yapabilirim bilmiyorum

Qt forumunda bir konu açtım belki daha fazla bilgi bulabilirsiniz:
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
Birinin bir ipucu veya çözümü varsa ilgileneceğim

Teşekkürler ! C

cqexbesd

4 Haz 2009


Almanya
  • 22 Tem 2016
qmake hakkında hiçbir şey bilmiyorum ama belki derleyici komutlarınızın ne olduğunu yazmalısınız ve belki birileri neyin yanlış olduğunu görebilir.

Orası

Orijinal afiş
22 Tem 2016
  • 22 Tem 2016
merhaba cqexbesd, cevabınız için teşekkürler, işte derleme çıktısının başlangıcı:

17:34:10: Başlangıç: '/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 YAPILANDIRMA+=qml_debug

17:34:10: '/Users/developpement/Qt/5.7/clang_64/bin/qmake' işlemi normal şekilde tamamlandı

17:34:10: Başlayın: '/usr/bin/make'

... C

cqexbesd

4 Haz 2009
Almanya
  • 24 Tem 2016
Demek istediğim, qmake sadece derleyiciyi çağırmak için bir araçtır. qmake'in derleyiciyi çağırdığı satırı bulabilir misiniz? Muhtemelen doğru çağırmıyor, yoksa işler yolunda giderdi. En azından başlamak için bir yer.

Orası

Orijinal afiş
22 Tem 2016
  • 25 Tem 2016
Sanırım burada:
Kod: |_+_|
derleme çıktımda birkaç kez bu satırlara sahibim, ancak yalnızca son satır değişiyor (dosyanın adı değişiyor)

Düzenleme : aynı satırlar ama aralarında boşluklar var
Kod: |_+_| En son bir moderatör tarafından düzenlendi: 25 Tem 2016 C

cqexbesd

4 Haz 2009
Almanya
  • 25 Tem 2016
Ayrıca bir bağlantı hattı olmalıdır - ör. -c argümanı olmadan clang++'ın çağrıldığı bir satır. Aslında çıktının tamamına bir bağlantı yapıştırabilirseniz faydalı olabilir.

Orası

Orijinal afiş
22 Tem 2016
  • 26 Tem 2016
Derleyicinin argümanlarını değiştirmenin mümkün olduğunu düşünmüyorum. İstemi ile yapabilirim.
İşte tam çıktı (çok çok uzun! 100.000 satır): http://textup.fr/171939hC


Düzenleme: Çıktıda daha fazla satırım olması için komut istemiyle derledim ve son satırlar ilginç:


x86_64 mimarisi için tanımsız semboller:

Kod: |_+_| En son bir moderatör tarafından düzenlendi: 26 Tem 2016 C

cqexbesd

4 Haz 2009
Almanya
  • 26 Tem 2016
En karmaşık sistem dışında her şeyden bir yapı için 100K çıktının muhtemelen bir yerlerde bir şeylerin yanlış gittiğinin bir işareti olduğunu düşünüyorum - ancak bu, endüstrinin durumu hakkında daha genel bir yorumdur.

Özel probleminize geri dönün. 'Tam çıktıda' yayınladığınız bağlantı hatalarını görmüyorum, ancak bu sadece normal bir bağlantı hatası gibi görünüyor. Diğer platformlarda olduğu gibi, bu sembollerin nerede tanımlandığını bulmak için nm'yi (veya Google'ı) kullanabilirsiniz ve benim için /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation'da görünüyor (ama benim için çok eski mac bu yüzden sizin için doğru olmayabilir).

Doğrudan bu kitaplığa karşı bağlantı kurmazsınız. Kodu eklemeyi deneyin: |_+_| bağlayıcı bayraklarınıza.

Orası

Orijinal afiş
22 Tem 2016
  • 27 Tem 2016
Evet haklısın !! Çok teşekkür ederim şimdi derleyebiliyorum! 3 haftadır bu sorunla karşı karşıyaydım! Çok teşekkürler ! İLE BİRLİKTE

züppe

5 Şub 2019
  • 5 Şub 2019
cqexbesd şöyle dedi: En karmaşık sistem dışında herhangi bir şeyden yapılan bir yapı için 100K çıktının muhtemelen bir yerlerde bir şeylerin yanlış gittiğinin bir işareti olduğunu düşünüyorum - ancak bu, endüstrinin durumu hakkında daha genel bir yorumdur.

Özel probleminize geri dönün. 'Tam çıktıda' yayınladığınız bağlantı hatalarını görmüyorum, ancak bu sadece normal bir bağlantı hatası gibi görünüyor. Diğer platformlarda olduğu gibi, bu sembollerin nerede tanımlandığını bulmak için nm'yi (veya Google'ı) kullanabilirsiniz ve benim için /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation'da görünüyor (ama benim için çok eski mac bu yüzden sizin için doğru olmayabilir).

Doğrudan bu kitaplığa karşı bağlantı kurmazsınız. Kodu eklemeyi deneyin: |_+_| bağlayıcı bayraklarınıza.
İLE BİRLİKTE

züppe

5 Şub 2019
  • 5 Şub 2019
merhaba arkadaşlar ... çok benzer bir problemle karşılaştım ... ama derlemek için terminali kullanıyorum ... terminal durumunda aynı çözümü nasıl yapabileceğim konusunda biri yardım edebilir mi?

hazır bir ./configure dosyam var ve sorunsuz çalışıyor ama ffi... ile ilgili 'semboller bulunamadı ...' ve make çalıştırdığımda bağlayıcıyla ilgili bir şey alıyorum

okieiam

17 Aralık 2016
  • 8 Şub 2019
zibbi dedi ki: merhaba millet ... çok benzer bir sorunla karşılaştım ... ama derlemek için terminali kullanıyorum ... terminal durumunda aynı çözümü nasıl yapabileceğim konusunda biri yardım edebilir mi?

hazır bir ./configure dosyam var ve sorunsuz çalışıyor ama ffi... ile ilgili 'semboller bulunamadı ...' ve make çalıştırdığımda bağlayıcıyla ilgili bir şey alıyorum
env CPPFLAGS='-I/home/foo/sw/include' LDFLAGS='-L/home/foo/sw/lib/' ./configure