2012-02-11 14 views
20

मैं कोडब्लॉक्स का उपयोग एमआईजीजीडब्ल्यू के साथ अपने आईडीई के रूप में कर रहा हूं। मैं Google प्रोटोकॉल बफर, का उपयोग करने की कोशिश कर रहा हूं लेकिन मुझे प्रोटोबफ बनाने में परेशानी हो रही है।मिनीजीडब्ल्यू का उपयोग कर विंडोज़ में Google के प्रोटोबफ का निर्माण कैसे करें?

Protobuf के लिए रीडमी फ़ाइल का कहना है:

If you are using Cygwin or MinGW, follow the Unix installation instructions, above.

यूनिक्स निर्देश का कहना है:

To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc) execute the following: $ ./configure $ make $ make check $ make install

मैं नहीं जानता कि कैसे विंडोज में इन प्रदर्शन करने के लिए, क्योंकि "कॉन्फ़िगर" एक यूनिक्स स्क्रिप्ट है और मुझे नहीं पता कि इसे कैसे निष्पादित किया जाए, या शेष आदेश।

क्या कोई अधिक विस्तार से समझा सकता है कि मैं विंडोज पर मिनीजीडब्ल्यू का उपयोग कर प्रोटोबफ का निर्माण कर सकता हूं?

उत्तर

25

यहाँ क्या मेरे लिए काम किया है:

  1. आप MinGW साथ MSYS स्थापित करने की आवश्यकता। यह एक न्यूनतम यूनिक्स-जैसे खोल वातावरण है जो आपको अधिकतर यूनिक्स पैकेज को कॉन्फ़िगर/बनाने देता है। इसे इंस्टॉल करने के तरीके पर mingw दस्तावेज़ पढ़ें (या तो mingw-get या GUI इंस्टॉलर के साथ)।

  2. एक बार जब आप MSYS स्थापित कर लेंगे, तो आपके पास "मिनगब्लू शैल" नामक आपके स्टार्ट मेनू में एक शॉर्टकट होना चाहिए। यह एक कंसोल के साथ एक कंसोल खोलता है।

  3. अपनी एमएसवाईएस होम निर्देशिका में स्रोत टैरबॉल निकालें। मैंने "डी: \ प्रोग" में स्थापित किया है, इसलिए निर्देशिका "डी: \ prog \ MinGW \ msys \ 1.0 \ home \ < उपयोगकर्ता नाम >" थी। आप शेल प्रॉम्प्ट से अपने एमएसवाईएस उपयोगकर्ता नाम बता सकते हैं। पूरा होने पर, आपके पास एक निर्देशिका होनी चाहिए "डी: \ prog \ MinGW \ msys \ 1.0 \ home \ < उपयोगकर्ता नाम > \ protobuf-2.4.1"।

    cd protobuf-2.4.1

  4. भागो कॉन्फ़िगर लिपि (backquotes ध्यान दें):

  5. खोल प्रॉम्प्ट पर, Protobuf निर्देशिका के लिए बदल

    ./configure --prefix=`cd /mingw; pwd -W`

    --prefix परमाटर सुनिश्चित करती है protobuf MSYS निर्देशिकाओं के बजाय mingw निर्देशिका पेड़ में स्थापित है, ताकि आप MSYS खोल के बाहर निर्माण कर सकें (उदाहरण के लिए बुद्धि ज codeblocks ...)

  6. रन बना:

    make

  7. स्थापित करें:

    make install

  8. यह है कि। अब आप अपने प्रोजेक्ट को प्रोटोबफ के साथ संकलित करने में सक्षम होना चाहिए।अपनी परियोजना/makefiles

  9. #include <google/protobuf/message.h> आदि
  10. -lprotobuf साथ लिंक या -lprotobuf-lite

HTH
पीटर

से

  • कॉल protoc:
    आप में सक्षम होना चाहिए

    संपादित करें: इसे थोड़ा और अद्यतित करें। मैं MinGW और Protobuf 2.5.0 के वर्तमान संस्करण के साथ एक नया पीसी की स्थापना की कोशिश की, और इन समस्याओं को मैं था कर रहे हैं:

    1. प्रारंभ मेनू में कोई "MinGW शैल" शॉर्टकट नहीं है।
      किसी कारण से वर्तमान MinGW इंस्टॉलेशन इसे स्थापित करने में विफल रहता है।
      लेकिन msys.bat<Mingw home>\msys\1.0 में है जो एक बैश के साथ एक कंसोल लाता है। उस बैच फ़ाइल को कहीं शॉर्टकट बनाएं।

    2. जीसीसी एमएसवाईएस खोल से काम नहीं करता है।
      मुझे मैन्युअल रूप से एक पोस्ट-इंस्टॉलेशन बैच फ़ाइल चलाने और वहां के सवालों का जवाब देना पड़ा। यह fstab प्रविष्टियों को सेट करता है जो MSYS वातावरण में mingw निर्देशिकाओं को माउंट करते हैं।
      आप <Mingw home>\msys\1.0\postinstall\pi.bat

    3. मेरे Avira एंटीवायरस Protobuf संकलन में हस्तक्षेप को चलाने के लिए की जरूरत है।
      यह उत्पन्न प्रोटोक.एक्सई के बारे में शिकायत करता है कि "TR/Crypt.XPACK.Gen" ट्रोजन और उस फ़ाइल में अवरुद्ध acces, जिसके परिणामस्वरूप दूषित निर्माण होता है।
      मुझे प्रोटोकॉल शुरू करने का प्रयास करते समय protoc:./.libs/lt-protoc.c:233: FATAL: couldn't find protoc. जैसे कुछ कहने में त्रुटि संदेश मिल गए।
      मैं Avira वास्तविक समय स्कैनर और make clean && make && make install को निष्क्रिय करने के लिए किया था फिर

    # 2 संपादित करें:

    इस पोस्ट में काफ़ी आयु वर्ग के है, और MinGW अब और नहीं है बराबर MinGW। इस दिन और उम्र में, मैं एमएसवाईएस 2 की सिफारिश करता हूं जो कि आर्किंक्स के पॅकमैन पैकेज मैनेजर के एक बंदरगाह के साथ आता है, हाल ही में, बेहतर काम करने वाला (सी ++ 11 std :: thread support!) Mingw कांटा 32 और 64 बिट दोनों के लिए, और एक प्रोटोबफ पैकेज जिसे आपको बस स्थापित करने और अच्छे होने की आवश्यकता है।

    Go here डाउनलोड करने के लिए!

    आशा है कि इससे मदद मिलती है!
    पीटर

+0

उत्तर के लिए Thanx :) मैं इसे आज़मा दूंगा। – Alex

+0

ठीक है, मैंने यह किया, और यह काम किया :), इसलिए जवाब के लिए बहुत कुछ है। – Alex

+0

@ पीटर: मैंने आपके द्वारा सूचीबद्ध चरणों का पालन करने का प्रयास किया। जब मैं './configure' कमांड चलाता हूं तो मुझे निम्न त्रुटि मिलती है: C++ प्रीप्रोसेसर को चलाने का तरीका जांचना .../lib/cpp कॉन्फ़िगर करें: त्रुटि: C++ प्रीप्रोसेसर "/ lib/cpp" संवेदना जांच विफल रहता है , कोई भी मेक नहीं, इंस्टॉलेशन कमांड काम करें। उदाहरण के लिए: बनाना: *** कोई लक्ष्य निर्दिष्ट नहीं है और कोई मेकफ़ाइल नहीं मिला है। रूक जा। –

0

मुझे एक ही समस्या थी और मैंने इसे बूस्ट बिल्ड का उपयोग करके प्रोटोकॉल बफर बनाने के द्वारा हल किया। यह ठीक काम करता है, मैं प्रोटोकॉल बफर के लिए एक jamfile प्रदान कर सकते हैं।

हालांकि मुझे अभी भी समस्याएं हैं जो बूस्ट बिल्ड को बढ़ाने के लिए है, इसलिए यह प्रोटोक फाइलों से सीपीपी स्रोत फाइलें उत्पन्न करता है, लेकिन यह एक और कहानी है।

+2

प्रोटोबफ स्रोत वितरण (3.0.0-बीटा 2) के वर्तमान-दिन संस्करणों में ./configure स्क्रिप्ट नहीं है, और 'autoconf' विफल रहता है; एक अद्यतन उत्तर का कोई मौका? –

1

मेरे मामले में पीटर का जवाब पूरी तरह से काम नहीं करता था, मैंने नवीनतम मिनीजीडब्ल्यू 4.8 का उपयोग किया था।1 + एमएसआई वितरण (mingw-get में एमएसआईएस पैकेज दोनों चयनित)।

मेरी समस्या यह थी कि उपसर्ग वास्तव में काम नहीं करता था, मैं केवल C:\MinGW\msys\1.0\local में फ़ाइलों को ढूंढ सकता था। हालांकि, बिन/शामिल/libs फ़ोल्डरों को c:\mingw, पर कॉपी करने के बाद भी स्थापना मेरे लिए काम करती है।