संकलन पार करते हैं Google प्रोटोकॉल बफर का उपयोग करने की मेरी समस्याएं दो भाग हैं, एक कंपाइलर विकल्पों के बारे में है, दूसरा क्रॉस संकलन है। बिल्ड मशीन एक पावर 6, 64 बिट है; मेजबान मशीन एक पावरपीसी 450, 32 बिट है। जीसीसी 4.1.2।Google प्रोटोकॉल बफर
मैं पॉवर मशीन जो पार संकलन की आवश्यकता है पर गूगल प्रोटोकॉल बफ़र्स स्थापित करने के लिए कोशिश कर रहा हूँ:
सबसे पहले समस्या संकलक विकल्पों के बारे में है। बिल्ड मशीन एक पावर 6, 64 बिट है; मेजबान मशीन एक पावरपीसी 450, 32 बिट है।
./configure --prefix=/home/where_to_install --host=powerpc-bgp-linux
तो करते हैं, जांच करना, बनाना स्थापित करते हैं, सब कुछ ठीक: सबसे पहले मैं जो उपयोग करने के लिए संकलक बताने के लिए सीधे निर्माण मशीन पर स्थापित करने के लिए कोशिश की, विकल्पों के साथ। मुझे लगता है कि मैंने मेजबान मशीन निर्दिष्ट की है, जिसमें पर्याप्त जानकारी शामिल होनी चाहिए जो संकलन की आवश्यकता है। जब मैं
/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin/g++ -g -zmuldefs -Xlinker -I/home/somewhere_installed/include $sourceFile -o $fileName -L/home/somewhere_installed/lib -lz -lstdc++ -lrt -lpthread -lm -lc -lprotobuf -lprotoc msg.pb.cc
मैं दिया गया था त्रुटि के साथ मेरी कोड संकलन करने का प्रयास करें:
g++: unrecognized option '-zmuldefs'
In file included from zht_util.h:20,
from hash-phm.cpp:9:
meta.pb.h:9:42: error: google/protobuf/stubs/common.h: No such file or directory
और common.h में चर के बारे में त्रुटि का एक बहुत नहीं पाए गए।
मुझे पता है क्योंकि यह संकलक विकल्प -zmuldefs को नहीं पहचानता है, इसलिए फ़ाइल सामान्य.h.h नहीं मिल सकती है। मैंने इसे गुगल किया और मुझे कोई स्पष्ट विचार नहीं मिला। मैं शिकायतकर्ता को विकल्प का उपयोग कैसे कर सकता हूं या फ़ाइल ढूंढ सकता हूं? या मेरे संकलन आदेश में कोई समस्या है?
दूसरी समस्या क्रॉस संकलन के बारे में है। Google प्रोटोकॉल बफर की रीडेमे फ़ाइल स्पष्ट रूप से संकलित करने के तरीके के बारे में स्पष्ट नहीं है। यह कहा गया है कि मुझे उपयोग करने के लिए कॉन्फ़िगर करने के लिए --with-protoc = protoc का उपयोग करना चाहिए, ठीक है, लेकिन इससे पहले मुझे होस्ट मशीन के लिए एक प्रति स्थापित करना होगा। मैं मेजबान
./configure --prefix=/home/where_to_install/built --host=powerpc-bgp-linux
के लिए प्रतिलिपि स्थापित करने के लिए पहले कमांड का उपयोग करता हूं, फिर इंस्टॉल करें।
तब के रूप में मेजबान मशीन का उपयोग करता है जो नीचे एक ही संकलक का उपयोग करता है के साथ संकलन पार:
./configure --prefix=/home/tonglin/Installed/built_3 CC=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CXX=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-g++ --host=powerpc-bgp-linux --with-protoc=/home/where_already_Installed/built/bin/protoc
फिर बनाने के लिए और त्रुटि मिली:
जानकारी संकलन ... blabla का एक बहुत .....
collect2: ld returned 1 exit status
make[3]: *** [protoc] Error 1
make[3]: Leaving directory `/gpfs/home/somewere/src/protobuf-2.4.1/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/gpfs/home/somewere/src/protobuf-2.4.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/gpfs/home/tonglin/Installed/src/protobuf-2.4.1'
make: *** [all] Error 2
मैंने गलत कहां किया? मैंने पहले इंस्टॉलेशन (होस्ट के लिए) में निर्दिष्ट कंपाइलर के साथ भी कोशिश की, यह एक ही त्रुटि मिली क्योंकि दूसरा इंस्टॉल ऊपर था। एक बार जब मैं इंस्टॉलेशन खत्म करने में सफल हो जाता हूं, तो मेरे पास दो इंस्टॉल होंगे, जिसका उपयोग मुझे करना चाहिए? क्या कोई मुझे एक उदाहरण दे सकता है कि मैं Google प्रोटोकॉल बफर संकलित कैसे कर सकता हूं? मुझे इसके बारे में कोई विस्तृत उदाहरण नहीं मिला।
धन्यवाद एक बहुत,
-Tony
मुझे एक ही समस्या है ... मैं जेएनआई परत के माध्यम से एंड्रॉइड प्रोजेक्ट में प्रोटोबफ लिब को एकीकृत कर रहा हूं। मैं ट्यूटोरियल [सीपीपी_ProtoBuf] (https://developers.google.com/protocol-buffers/docs/cpptutorial) का पालन कर रहा हूं, लेकिन संकलन करते समय यह समान त्रुटि उत्पन्न करता है। ** jni /./ mysense/wrapper/addressbook.pb.h: 9: 42: घातक त्रुटि: google/protobuf/stubs/common.h: ऐसी कोई फ़ाइल या निर्देशक **। यहां कोई सुझाव है? – CoDe