Geçerli tercih edilen C++ ortamım, ücretsiz ve büyük ölçüde mükemmel Microsoft Visual Studio 2005 Express sürümüdür. Zaman zaman .exe dosyalarını hoş insanlarla diğer insanlara gönderdim. Ancak son zamanlarda, memnuniyet verici sonuçların istediğim daha fazla şansa dayandığı konusunda rahatsız edici bir keşif yaptım. Bu programlardan birini çalıştırmaya çalışırken (2001 vintage, titizlikle güncelleştirilmemiş) XP kutusu bana kötü bir "Sistem x.exe dosyasını çalıştıramıyor" (veya benzeri) iletiden başka bir şey vermedi.Visual Studio Express 2005 ile tam olarak statik bağlantılı bir .exe nasıl yapabilirim?
Bazı googling, bu araç seti ile, statik bağlantı belirtmenin bile aslında ekstra .dll dosyalarına (msvcm80.dll vb.) Güvenerek basit bir hello-world.exe içinde sonuçlandığını ortaya çıkardı. Inanılmaz derecede ayrıntılı bir sürüm şema sistemi (manifest dosyaları herkes?) Sonra .exe tam olarak doğru .dll sürümleri olmadan çalışmasına izin vermez. Bu şeyler istemiyorum ya da ihtiyacım yok, sadece eski bir moda kendi kendine yer alan .exe içeren bir şey istiyorum ama en düşük ortak payda Win32 işlemleri ve herhangi bir eski win32 işletim sistemi üzerinde çalışır.
Varolan araç setimle yapmak istediğimi yapıp yapamayacağını bilen var mı?
Teşekkür ederiz.
"Başka kütüphane kullanıyorsanız, linker'e dinamik olarak bağlantılı CRT'yi açıkça görmezden gelmeniz gerekebilir." Son zamanlarda bu konuya koştum. Bir wxWidgets uygulaması oluşturuyordum, aynı kod oluşturma modifikasyonu ile wxWidgets lib'lerini yeniden oluşturmam gerektiğini buldum. –
Man 300 karakter çok fazla değil. Yukarıdaki yorumun belirsiz olması durumunda, sorun .cpp dosyalarınızın ve herhangi bir kütüphane .cpp dosyasının 'multithreaded dll' yerine 'multithreaded' olması gerektiğidir. Aksi halde link hataları alabilirsiniz. –
Bu, yığın yönetimiyle ilgili, muhtemelen hiçbir ilgisi olmasını istemediğiniz sayısız sorun ortaya çıkarır. –