2010-10-15 27 views
6

Windows'da mingw ile derlediğim C programım var. İyi çalışıyor ama MSVCRT.DLL gerektirir. Statik olarak bağlamak istiyorum (Visual Studio'da yapabileceğim gibi). Mümkün mü? MSVCRT'yi statik olarak mingw ile bağlayabilir miyim?

Ben gcc için -static bayrak denedik ve herhangi bir değişiklik yapmadı.

Standart C++ kütüphanesini kullanarak C++ programından ne haber?

+0

Son sorunuz hakkında ... eğer STL hakkında konuşuyorsanız, yalnızca başlıktır. –

+0

@Armen: Ancak C++ MSVCPT veya benzeri bir şey için de DLL var mı? – zaharpopov

+0

Not: MSVCRT.DLL, Windows'un her sürümünde, genellikle karşılaşabileceğiniz bir sistem bileşeni olarak dahil edilir. Özellikle, son kullanıcılarınız zaten sahip olacağından, onu uygulamanıza dağıtmanız gerekmez. Doğal bir soru o zaman neden dinamik bağlantıdan kaçınmanız gerekiyor? – RBerteig

cevap

7

Ben MinGW telif nedenlerle statik çalışma zamanı kitaplığı kullanmaz inanıyoruz.

Belki gcc -static -static-libgcc -static-libstdc++ ile msvcrt.dll

+1

+1. Bu, zaten her Windows sisteminde olmanın akıllı bir yan etkisidir. MinGW ile oluşturulan programlar bunu gerektirir, ancak asla dağıtmak zorunda kalmaz. Bu nedenle, telif hakkı sorunu yoktur. – RBerteig

+1

Kodda herhangi bir std C işlevini kullanmasa bile, ana/önceki işlemlerden önce/sonra çalışan CRT başlatma/temizleme kodları için MSVCRT gerektiğini düşünüyorum. newlib bunu da sağlıyor mu? – zaharpopov

-2

Link bağlantı vermediğinden çalışan program oluşturmaya newlib (http://sourceware.org/newlib/) kullanmayı deneyebilirsiniz ve arama bir süre geçirmiş olması libgcc_s_dw2-1.dll ve libstdc++-6.dll

+0

Açıklama olmadan böyle bir yanıtı düşürmek gerçekten yararlı değildir. Bu cevabın hatalı olmasının açık bir nedeni yok. – JBentley

+1

Neden bu neden msvcrt.dll oluşturulan ikili bağımlılıkları kaldırılmasının hiçbir etkisi yoktur? – paulm

+0

çünkü hala msvcrt.dll ihtiyacı olacak – sherpya

0

gerek kalmayacak Bu kendim için, Mingw32 Alternatif C Çalışma Zamanı Kitaplığı'u tanıtan this post ile karşılaştım. Ancak, kullanıma hazır değil ve geliştirici bunu terk etmiş görünüyor. Home page link here.

gelecekte bir noktada Googling insanlara faydalı gelirim umuduyla buradayız bu yanıtı yayınlama.

İlgili konular