2012-05-08 15 views
12

MinGW-w64 कम से कम December 2010 के बाद से सिग्विन के साथ उपलब्ध है। हालांकि मुझे लगभग कुछ भी संकलित करने के लिए इसका उपयोग करने में कठिनाई हो रही है। मैं alternativesसिगविन के साथ MinGW-w64 का उपयोग कैसे करें?

p=x86_64-w64-mingw32 
alternatives \ 
    --install /usr/bin/gcc.exe gcc /usr/bin/$p-gcc.exe 0 \ 
    --slave /usr/bin/ar.exe ar /usr/bin/$p-ar.exe 

उदाहरण के लिए के साथ सांकेतिक लिंक की स्थापना की है अगर मैं संकलन करने की कोशिश wget

./configure --without-ssl 
make 

त्रुटियाँ (संक्षिप्तता के लिए संपादित)

connect.o:connect.c:(.text+0x3f): undefined reference to `__imp_htons' 
connect.o:connect.c:(.text+0xbe7): undefined reference to `__imp_ntohs' 
connect.o:connect.c:(.text+0xd96): undefined reference to `run_with_timeout' 

अगर मैं का उपयोग

  • मिनजीडब्ल्यू MinGW जीसीसी के साथ शैल Cygwin जीसीसी (gcc4-core) के साथ
  • Cygwin खोल

को Wget संकलित कर देगा।

बंद आधार AK2 जवाब है, यह, काम करने के लिए

./configure --host=x86_64-w64-mingw32 --disable-ipv6 --without-ssl 
make 

उत्तर

19

ak2 आंशिक रूप से गलत है जैसा कि here कहा गया है।

सही विकल्प --host=x86_64-w64-mingw32 है, जैसा कि आपने पाया है। --target का उपयोग क्रॉस-कंपाइलर के निर्माण के लिए किया जाता है। विकल्प हैं:

  • --build: क्या आप
  • --host पर निर्माण कर रहे हैं: आप
  • --target के लिए क्या निर्माण कर रहे हैं: क्या आप का निर्माण कर रहे एक क्रॉस-संकलक, क्या है कि पार संकलक का निर्माण करेगा है के लिये।
6

Cygwin के MinGW-W64 संकलक पार संकलक है लगता है, क्योंकि यह Cygwin पर लेकिन MinGW-W64 को निशाना बनाने की मेजबानी की है। तुम बस --target विकल्प का उपयोग configure इसके बारे में बताना है, तो तरह की जरूरत है:

--target=x86_64-w64-mingw32 

इस तरह, make उचित उपकरण लागू हो जाएगा। आपको किसी भी पुस्तकालय के MinGW-w64 संस्करणों को स्थापित या निर्माण करने की आवश्यकता होगी जिसे आप जिस पैकेज को बनाने का प्रयास कर रहे हैं, उस पर निर्भर करता है।

MinGW-w64 वाले पर /usr/bin बिंदुओं में उपकरण रखने के लिए विकल्प सिस्टम को झुकाव एक अच्छा विचार नहीं है, क्योंकि इस तरह आप सिग्विन हेडर और पुस्तकालयों के साथ मिनजीडब्लू टूल्स का उपयोग करेंगे, जो कि त्रुटियों की तरह होता है आपने ऊपर उद्धृत किया है।

+0

मैंने साइगविन में पैकेज 'mingw64-x86_64-gcc-g ++' पैकेज स्थापित किया है। हालांकि, 'कौन सा g ++ 'कोई' g ++' नहीं दिखाता है। स्थापित 'mingw64' कंपाइलर कहां है? इस 'mingw64-x86_64-gcc-g ++' के लिए मैं './configure --target = ???' में क्या सेट करना चाहिए – Admia

संबंधित मुद्दे