SORU
20 AĞUSTOS 2013, Salı


Özellik listesi 64 bit için özellik listesi 32 bit geçmek doğru mudur?

Cygwin (uzun bir süre) kullanıyorum. Özellikle, (gcc/g dahil ) geliştirme çalışmaları için Windows 7 üzerinde kullanıyorum. Sadece son zamanlarda artık 64-bit version var orada fark ettim.

64-bit için geçiş yapmak gerekiyor, ama yine de yapmak olup olmadığını merak ettim özel bir nedeni yok. Doğru mudur? Ne artılarını ve eksilerini? Geçiş yaparken aşırı ark bilinen sorunlar var mı?

CEVAP
20 AĞUSTOS 2013, Salı


64-bit sürümü için tek Önemli dezavantajı hala 64-bit taşıdık henüz 32-bit paketi depo some packages olmasıdır. Özellik listesi Port projesi 32-bit bir oranla da missing "many packages" 64-bit deposunda.

64-bit özellik listesi kullanmanın en büyük avantajı hafıza daha fazla miktarda erişim. Bu büyük bir anlaşma olabilir. Kullanıyorsanız bu sürümü özellik listesi R ile büyük veri setleri, örneğin, gerekir geçiş için 64-bit özellik listesi ASAP çünkü R istiyor yüklemek için tüm veri kümesinin içine RAM, yani kullanarak 32-bit özellik listesi üzerinde bir 64-bit makine yapay sınırları ne R başarmak altında özellik listesi.

Her iki sürümü yüklü ve aynı anda çalışıyor olabilir. Hatta aynı anda her MinTTY bir pencere olabilir. Bununla birlikte, iki Cygwins fundamentally incompatible olduğu için en iyi ayrı dünyalar gibi davranarak. Eğer onları birlikte olmaya çalışırsan sorun olur.

Bu temel uyumsuzluk çeşitli şekillerde sizi ısırabilir:

  1. Olsa bile bir özellik listesi 64 program başlatmak bir özellik listesi 32 program da tam tersi, birkaç cross-işlem mekanizmaları işe yaramaz karşısındaki sınır: POSIX paylaşılan bellek, dosya tanıtıcı geçirmeden, getppid(2)...

  2. Hatta bazı şeyler çapraz süreç olarak iki farklı Cygwins birlikte yapmaya çalıştığınızda başarısız olur gibi düşünmeyin. /proc kadar aynı anda aynı makinede çalışan olmalarına rağmen iki Cygwins arasında farklı olacak, mesela DLL içinden gelir,,.

  3. Kaynaktan inşa ettiğin tüm yazılım iki tane olması gerekmez yani Cygwins arasında /usr/local paylaşmak istediğini söylüyor.

    Yukarıda ilk madde okuduktan sonra, /usr/local/bin /usr/local/lib paylaşamazsın olduğunu fark ettim.

    Üzerinde düşündükten sonra, en azından yinelenen kaynağı ağaçlar var? /usr/local/src paylaşmak istiyorum karar. Eğer hala tipik olarak kaynak ağacı, bu programlardan birini inşa edersen sorunlar olacak. (6* yani *)

    Bu iki sebepten dolayı olur:

    • Oluşturulan ikili (*.o, *.so, *.a, *.exe...) olacak uyumsuz arasındaki iki Cygwins, Yani eğer sen de make clean zaman geçiş arasında Cygwins, olacaklar geride, neden karışıklık.

    • Bile seni hatırlamak için make clean çıktı ./configure altında her özellik listesi muhtemelen farklı, çok çalışan bir yapı Programı kapsamında özellik listesi 64 oldu yapılandırılmış altında özellik listesi 32 (veya tam tersi) olabilir başarısız.

    Birkaç yolu bu tuzaktan vardır:

    • /usr/local/src de paylaşım vazgeçmek.

    • Cygwins geçiş yapmak için her make clean && ./configure unutmayın.

    • Her çeşidi için ayrı ayrı özellik listesi build out-of-tree yapı.

      Bu daha temiz, daha hızlı ve önceki seçeneği daha güvenilir olduğunu, ancak tüm kaynak ağaçlar bu izin verecek şekilde ayarlanmıştır.

Eğer bu tür sorunlar ile koymak için iyi bir neden yok eğer doğru değilse, bir sürüm ya da her ikisini de yükleyin.

Eğer varsa bir işleyişi 32 Kur özellik listesi özellik listesi ve faydaları gerek yok 64, sopa ile. Özellik listesi 32 uzun bir süre gitmiyor.

Aynı zamanda olsaydım kurma yeni bir 64-bit Windows kutusu ederim yükleyin özellik listesi 64 olmadıkça biliyordum ön yaramadı bir paket taşıdık buna ihtiyacım vardı, ve ben değildim bunu yapmak için istekli liman kendimi. Kararlı ve çoğunlukla tamamlandı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DorkmanScott

    DorkmanScott

    14 NİSAN 2006
  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009