Aracılığıyla paylaş


Derleyici Hatası C3859

PCH için sanal bellek oluşturulamadı

İleti aşağıdaki notlardan birine sahiptir:

Sistem kod hata kodu döndürdü: İşletim sistemi hata iletisi
PCH: Adres, sistemin ayırma ayrıntı düzeyinin bir katı değil
PCH: Öbek daha önce ayrılmamış
PCH: İşleme boyutu çok büyük
PCH: Dosya eşlemesi arasında bellek işlenemiyor
PCH: Tüm baytları işlemeden önce tükenmiş öbek listesi
PCH: Serbest bırakmaya çalışırken beklenmeyen öbek sonu listesi
PCH: Decommit durumunda bir dosya haritasına isabet etmemelidir
PCH: Geçersiz öbek
PCH: Harita boyutu çok büyük
PCH: Dosya eşlenemiyor: bellek zaten kaydedilmiş
PCH: Dosya eşlemesi zaten var
PCH: İstenen bellek bloğu alınamıyor
Derleyicinin belleği erken ayırmasına izin vermek için /Fp kullanmayı göz önünde bulundurun

Önceden derlenmiş üst bilginiz (PCH) için yeterli sanal bellek ayrılmadı. Önceden derlenmiş üst bilginiz açık #pragma hdrstop bir yönerge kullanıyorsa, önceden derlenmiş üst bilgi dosyası için daha büyük bir değer belirtmek üzere derleyici bayrağını kullanın /Zm . Aksi takdirde, derlemenizdeki paralel derleme işlemlerinin sayısını azaltmayı göz önünde bulundurun. Daha fazla bilgi için bkz /Zm . (Önceden derlenmiş üst bilgi bellek ayırma sınırını belirtme).

Bu tanılama çoğunlukla iki senaryoda gösterilir:

İlk senaryo, sistemin aynı anda birden çok /Yu derleme isteğiyle aşırı yüklenmesidir. Başlangıç sanal bellek boyutu üst sınırını ayarlamak genellikle bu sorunu çözer.

İkinci senaryo, Windows yükleyicisinin başlangıçta işleme bir DLL eklemesidir. Eklenen DLL, PCH'nin bulunması gereken yerle çakşan bellek ayırabilir. Örneğin, msbuild.exe başlangıçtaki her CL.exe işleme eklerFileTracker.dll. Bu senaryoda, (Name .pch file) bayrağının kullanılması /Fp , eklenen DLL'ler adres alanını kaplamaya çalışmadan önce PCH belleğinin CL.exe işlemde mümkün olan en erken zamanda ayrılmasını sağlar. Windows Adres Alanı Düzeni Rastgele Seçim (ASLR) farklı işlem çağrılarında farklı adreslerde bellek ayırdığından bu hatalar aralıklı olabilir. olmadan/Fp, derleyici komut satırı seçeneğinde /Yu veya #pragma hdrstopiçinde belirtilen üst bilgi dosyasını #include bulana kadar PCH için bellek ayrılamaz. Bu zamana kadar, PCH'nin gerektirdiği belleğin zaten ayrılmış olma olasılığı çok daha yüksektir.