2011-02-13 7 views
9

मैं unsucessful MinGW/MSYS साथ freetype संकलित करने के लिए कोशिश कर रहाक्या किसी ने सफलतापूर्वक MingW/MSYS के साथ freetype संकलित किया है?

यहाँ मैं क्या करना है कर रहा हूँ:

cmd.exe से मैं MSYS करने के लिए स्विच:

C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-2.3.5>bash 

और फिर configure स्क्रिप्ट

फोन
bash-3.1$ ./configure 

FreeType build system -- automatic system detection 

The following settings are used: 

    platform     unix 
    compiler     cc 
    configuration directory  ./builds/unix 
    configuration rules   ./builds/unix/unix.mk 

If this does not correspond to your system or settings please remove the file 
`config.mk' from this directory then read the INSTALL file for help. 

Otherwise, simply type `make' again to build the library, 
or `make refdoc' to build the API reference (the latter needs python). 

cd builds/unix; ./configure 
checking build system type... i686-pc-mingw32 

[------ Deleted some 121 lines because they seem irrelevant for the problem ------] 

config.status: creating ftconfig.h 
make: Nothing to be done for `unix'. 

freetype को कॉन्फ़िगर करने के बाद, मैं 0 का उपयोग करना चाहता हूंसूत्रों संकलित करने के लिए:

bash-3.1$ make 
/bin/sh: cygpath: command not found 
config.mk:36: /builds/freetype.mk: No such file or directory 
config.mk:57: /builds/unix/install.mk: No such file or directory 
builds/toplevel.mk:158: /builds/modules.mk: No such file or directory 
make: *** No rule to make target `/builds/modules.mk'. Stop. 

समस्या cygpath है, जो अजीब है, क्योंकि मैं cygwin स्थापित नहीं किया है हो रहा है।

bash-3.1$ make -v 
GNU Make 3.81 
Copyright (C) 2006 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. 
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. 

This program built for i686-pc-msys 

क्या मैं गलत करते हो:

संकलन निर्देश जनादेश gnu बनाने के बाद से, मैं इस सत्यापित?

संपादित करें: निर्देशिका में Makefile.mingw भी है। make -f Makefile.mingw के साथ संकलन प्रक्रिया शुरू करने का प्रयास कर रहे हैं या तो ¨make: *** No rule to make target 'MFSED', needed by 'all'. Stop. संदेश लौटाते हैं।

अद्यतन ठीक है, मैं इस मामले में कुछ जासूस जांच किया है, और ऐसा लगता है कि समस्या precisly है, क्योंकि मैं स्थापित नहीं किया है Cygwin। मेरे पास यह धारणा है क्योंकि cygpath एक साइगविन उपयोगिता (See here) है जो यूनिक्स-पथ को विंडोज-पथ में बदलती है और इसके विपरीत।

  • ./builds/unix/aclocal.m4
  • ./builds/unix/configure
  • ./builds/unix/:

    अब, एक ¨find . -type f -exec grep -l cygpath {} \; कई स्थानों जहां cygpath प्रयोग किया जाता है पाता है unix-def.in

  • ./builds/unix/unix-def.mk
  • ./patches/freetype-2.3.4.diff
  • ./patches/freetype-2.3.5/build एस/यूनिक्स/unix-def.mk
  • ./patches/freetype-2.3.5.diff

और मुझे लगता है कि मैं एक या एक से इन स्थानों का निर्माण ठीक करने के लिए अधिक में कुछ बदलने के लिए होगा । सही? मैं अभी भी उम्मीद कर रहा हूं कि संपूर्ण ./configure-build प्रक्रिया के बारे में अधिक जानकारी वाले किसी को मुझे इस मुद्दे पर संकेत मिल सकता है।

अद्यतन द्वितीय: rubenvb के जवाब से, मैं समझ रहा ./configure --build=i686-pc-mingw32 और की कोशिश कर सकते तो पढ़ने

TOP_DIR := $(shell cd $(TOP_DIR); cygpath -m `pwd`) 
builds/unix/unix-def.mk में

और तो परिवर्तन लाइन लाइन पढ़ने को दूर

RCTOOL_COMPILE = RCTOOL 

से

RCTOOL_COMPILE = $(RCTOOL) 
./builds/freetype.mk और भी http://gnuwin32.sourceforge.net/rctool.sh.txt c:\mingw\bin करने के लिए (के बाद से वहाँ लापता rctool.sh की वजह से अजीब त्रुटियां होने पर) को कॉपी करने और में

तो make साथ संकलन की प्रक्रिया शुरू

अब, स्रोत फ़ाइलों का संकलन में पिछले करने के लिए (कम से कम आंशिक रूप से) पूरा लग रहा था, हालांकि मैं

./src/base/ftcalc.c:75:3: warning: 'FT_RoundFix' redeclared without dllimport attribute: previous dllimport ignored 

तरह कई चेतावनी मिल गया है लेकिन लिंकर * ओ लिंक करने में असमर्थ है फ़ाइलों मुझे लगता है कि संकलन चेतावनी लिंकर त्रुटियों से संबंधित नहीं नहीं कर रहे हैं क्योंकि वहाँ की तरह

C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-2.3.5/src/base/ftinit.c:89: undefined reference to `_imp__FT_Add_Module' 

कई अपरिभाषित संदर्भ हैं।

तो, अब क्या?

उत्तर

4

सामान्य में, विंडोज पर यूनिक्स/लिनक्स सॉफ्टवेयर संकलन दो तरीके जा सकते हैं:

  1. MSYS या Cygwin से मौजूदा कॉन्फ़िगर लिपियों का प्रयोग करें।

  2. cmd.exe (विंडोज़ खोल) से एक आपूर्ति किए गए मिंगव मेकफ़ाइल का उपयोग करें।

आप पहले की कोशिश की (लेकिन मैं मुश्किल पर्याप्त नहीं लगता है), और दूसरा एक गलत किया:

  1. कॉन्फ़िगर करने के लिए --host=i686-pc-mingw32 गुजर कोशिश करो। लिपि आपको बता रही है कि यह एक यूनिक्स बिल्ड का पता लगाता है, जो बहुत गलत है और जैसा कि आप देख सकते हैं, काम नहीं करता है।

  2. आप मेकफ़ाइल.एमक्सई का उपयोग करने के लिए सीधे cmd.exe से mingw32-make का भी उपयोग कर सकते हैं। यह ठीक काम करना चाहिए।

मुख्य स्रोत निर्देशिका में एक README या फ़ाइल स्थापित करने का प्रयास करें। यह आपको बताएगा कि क्या करना है और शायद विंडोज़ विशिष्ट अनुभाग है।

+0

आपकी बहुमूल्य मदद के लिए धन्यवाद। दुर्भाग्यवश, न तो विकल्प ने किसी भी बदलाव को बदल दिया, दोनों अभी भी लापता 'साइगपाथ' से संबंधित एक ही त्रुटि उत्पन्न करते हैं। मुझे एक रीडमे मिला (जिसे वास्तव में * INSTALL.UNIX * और * UPGRADE.UNIX * कहा जाता है, जिनमें से दोनों को स्पष्ट रूप से मिनजीडब्लू/एमएसवाईएस उपयोग के लिए कहा गया है) और मुझे मूल रूप से करने के लिए बताएं जो मैंने पहले ही किया है।मैं तर्क नहीं देता कि मैंने काफी मेहनत नहीं की है (हालांकि मैंने पहले से ही 4-5 घंटे बिताए हैं), लेकिन पूरी बात नहीं है ./configure चीज़ को अलग-अलग प्लेटफॉर्म के बारे में चिंता करने की ज़रूरत नहीं है? –

+1

ठीक है, एक msys पर्यावरण में cygpath की आवश्यकता नहीं है। क्या आप निश्चित रूप से mingw32-make का उपयोग कर विंडोज कंसोल (cmd.exe) से मिंगव मेकफ़ाइल का उपयोग नहीं कर रहे हैं? – rubenvb

+0

जब मैं एक cmd.exe और 'में सी सीडी खोलने: \ अस्थायी \ freetype-2.3.5-1 \ src \ freetype \ 2.3.5 \ freetype-2.3.5' और करना एक' mingw32-make.exe -f Makefile.mingw', कई लाइनों को प्रिंट करने के बाद अंततः 'mingw32-make प्रिंट करता है: ***' सभी 'द्वारा आवश्यक' MFSED 'लक्ष्य बनाने का कोई नियम नहीं है। रोकें। –

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

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