2010-01-05 8 views
8

मैं एक सी ++ परियोजना पर काम कर रहा हूं, और हमें हाल ही में इसमें बढ़ावा देने का एक छोटा हिस्सा शामिल करने की आवश्यकता है। बूस्ट पार्ट वास्तव में न्यूनतम (बूस्ट :: पायथन) है, इस प्रकार, बीजेएम का उपयोग करके सब कुछ बनाने के लिए एक ओवरकिल की तरह दिखता है (इसके अलावा, परियोजना पर काम करने वाले हर किसी को बनाने में सहज महसूस होता है, और जाम की कोई जानकारी नहीं है)।नियमित मेकफ़ाइल का उपयोग करके एक बढ़ावा निर्भर परियोजना कैसे बनाएं?

मैंने पहले से ही कुछ परीक्षण किए हैं, लेकिन मुझे अपने मेकफ़ाइल में पूर्व में निर्दिष्ट लाइब्रेरी को शामिल करने और निर्माण को सफल बनाने का कोई तरीका नहीं मिल रहा है।

आपकी सभी मदद की गहराई से प्रशंसा की जाती है। :)

उत्तर

2

मुझे एक ही समस्या थी और इस tutorial में एक समाधान मिला। आपको 1) स्रोत को -fPIC gcc विकल्प के साथ ऑब्जेक्ट फ़ाइल में संकलित करने की आवश्यकता है, और 2) इस ऑब्जेक्ट को -shared gcc विकल्प के साथ लाइब्रेरी में संकलित करें। बेशक आपको Boost.Python लाइब्रेरी (आमतौर पर -lboost_python) के खिलाफ भी लिंक करना होगा, हालांकि मेरे डेबियन सिस्टम के लिए यह उदाहरण के लिए -lboost_python-mt-py25 है, मुझे -I/usr/include/pythyon25 भी जोड़ना है)। मेरे मेकफ़ाइल में मैं एक ही कमांड में उन दो चरणों को कर रहा हूं। पी भी देखें। 13 में से presentation

+0

धन्यवाद। यह वही जवाब था जिसे मैं ढूंढ रहा था। :) – Fabzter

1

यदि आप bjam से असहज हैं, तो आप Boost.Cmake का उपयोग करने पर विचार करना चाहेंगे।
वैकल्पिक रूप से आपको कम से कम आसानी से देखना चाहिए कि वे bjam फ़ाइलों के साथ क्या कर रहे हैं।

1

भागो bjam makefile से, बस उस भाग

4

आप केवल बूस्ट के सबसेट आप की जरूरत को निकालने के लिए बूस्ट के bcp utility उपयोग कर सकते हैं के निर्माण के लिए। इससे आपके निर्माण समय को कम किया जाएगा & आकार।

हालांकि यह आपके प्रश्न का उत्तर नहीं देता है। आप Boost.Python पुस्तकालयों को अलग से बनाने और सीधे अपने स्रोत नियंत्रण प्रणाली में जांचने पर विचार करना चाह सकते हैं। तब किसी को भी उन्हें बनाने की आवश्यकता नहीं होगी।

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