2010-08-18 12 views

cevap

22

Verimlilik ile ilgisi yoktur. Yerel ve çapraz derleyici, her ikisi de aynı makine kodunu oluşturur. Ancak 64 bitlik bir iş istasyonunda yerel 64-bit bir derleyici işlemini çalıştırarak bazı avantajlar elde edeceksiniz (daha büyük yazmaçlar, daha büyük bellek alanı, vb ...).

Yerel derleyici, Windows'un 64 bitlik bir kopyasında çalışır, bu nedenle iş istasyonunuz 32 bit ise, bu derleyici bile çalışmayacaktır.

Çapraz derleyici, Windows 7'nin 64-bit bir kopyasında WoW aracılığıyla çalışacak olsa da x86 makinelerinde çalışacak şekilde tasarlanmıştır; Ancak bunu yapmak için bir sebep yoktur.

Bağlamak sayfa oldukça iyi diyor: Eğer x64 için çıkış dosyaları oluşturmak için x86 (x64 çapraz derleyici) üzerinde

x64
verir. Cl.exe'nin bu sürümü, bir x86 makinede yerel olan ve 64 bit Dullar işletim sisteminde WOW64 altında bulunan bir 32 bit işlem olarak çalışır. x64
üzerinde

x64 çıkış x64 için dosyaları oluşturmanızı sağlar. Bu cl.exe sürümü, bir x64 makinede yerel bir işlem olarak çalışır.

7

: x86 (x64 çapraz derleyici) üzerinde

x64
Eğer x64 için çıkış dosyaları oluşturmak için verir. Cl.exe'nin bu sürümü, bir x86 makinede yerel olan ve 64 bit Dullar işletim sisteminde WOW64 altında bulunan bir 32 bit işlem olarak çalışır. x64
üzerinde

x64 çıkış x64 için dosyaları oluşturmanızı sağlar. Bu cl.exe sürümü, bir x64 makinede yerel bir işlem olarak çalışır.

Başka kelimelerle yazılmış: Eğer x86_amd64 kullanırsanız, o zaman tipik bir x86 makinede geliştiriyorlar ve x64 yerel olarak çalışacak x64 dosyalarını oluşturmak istiyorum

. Bu seçeneği bir x64 makinesinde de kullanabilirsiniz, ancak derleyiciniz WOW64 öykünmesi altında çalışacaktır.

AMD64 kullanıyorsanız, bir x64 makinesinde geliştiriyorsunuz ve x64 dosyalarında x64 dosyalarını doğal olarak çalıştırabilirsiniz. Derleyici, x64'te doğal olarak çalışıyor. Bu seçenek x64 programları oluşturmak için daha etkilidir.

Neden x86 bilgisayarında bir x64 programını geliştirebileceğinizi merak edebilirsiniz, çünkü bunu çalıştıramazsınız çünkü hata ayıklayamazsınız. Yine de, örneğin x86 olan bir oluşturma sunucunuz varsa ve bu sunucunun hem x86 hem de x64 çıktıları üretmesi gerekiyorsa, yine de yararlıdır.

X86 tabanlı bir program (x86_amd64) ise bir derleyicinin x64 altında çalışmasına nasıl izin verilir? Bu, x64 makinenizde herhangi bir x86 programını çalıştırabilmenizin aynı nedendir ... WOW64 öykünmesi sayesinde. Eğer x 64 bilgisayarda (veya ıa64), x86 programı çalıştırdığınızda

WOW64'nı emülasyon olur:

WOW64'ni emülasyon nedir. WOW64, Windows 64'te Windows 32'yi temsil eder. X86 programlarını çalıştırmanızı sağlayan x64 makinelerinin üstünde bir emülasyon katmanıdır.

Dosya sistem işlemleriniz WOW64 klasörlerine yönlendirilecek ve kayıt defteriniz de bir alt nota yönlendirilecektir. Örneğin, program dosyaları için klasör almaya çalıştığınızda, WOW64 kullanıyorsanızdönecektir, ancak x64 kullanıyorsanız c:\program files\ döndürecektir.

Başka bir örnek, kayıt defterinde HKLM\Software\Something'a yazmayı denerseniz, x 86 programınızın bilgisi olmadan sizi HKLM\SOFTWARE\Wow6432Node\Something'a yönlendirecektir.

Yerel bir x64 yapısı çalıştırmak, WOW64 öykünmesiyle çalışmaktan daha verimli olacaktır Neden? Çünkü 32bit aramalarınızı 64bit'e dönüştüren bu fazladan emülasyon katmanınız yok.

Bu arada, Windows'un x64 sürümünü çalıştırıyorsanız, WOW64 aracılığıyla hangi süreçlerin çalıştığını görebilirsiniz, çünkü işlem listesinde işlem adına eklenmiş bir * 32 olacaktır.

+0

x86_amd64 ve amd64 Hem sürümlerini biçimlendirme teklifi için Brian R. Bondy için

Teşekkür hem 64-bit OS üzerinde bir yerel 64 bit işlem olarak aday olacağını x64 yerli çalıştırılabilir oluşturun. WOW64, x64 OS üzerinde 32 bit yerel yürütülebilir dosyaları çalıştırmak içindir. X86 derleyici, WOW64 altında çalışacak olan yerel 32 bit çalıştırılabilir dosyalar oluşturacaktır. – joshperry

+0

@ joshperry: düzenlemeye bakalım. –

+0

@ BrianR.Bondy Günün biraz geç ama hala amd64_x86 seçeneği ile kafam karıştı. Anladım ki araç seti (cl/link) 64-bit süreçler olarak çalışmasına izin veriyor. TAMAM. Ama oluşturulan ikili dosyalar x86 mimarisini hedefliyor, değil mi? İkincisi tam olarak ne anlama geliyor? Amd64_x86 tarafından üretilen 64-bit ikili dosyalar işe yaramaz mı? – ForeverLearning

İlgili konular