तो मान लें कि आप बूस्ट "प्रारंभ करना" उदाहरण बनाना चाहते हैं और कमांड लाइन पर निर्माण के बजाय एक्सकोड प्रोजेक्ट का उपयोग करके उनसे लिंक करें। आप हेडर-केवल विकल्प आज़माएं और यह ठीक काम करता है।मैं एक्सकोड का उपयोग करके "प्रारंभ करना" उदाहरण कैसे बढ़ा सकता हूं?
लेकिन तब आप उदाहरण स्रोत ले:
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat("^Subject: (Re: |Aw:)*(.*)");
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
और आप निम्न कार्य करें:
- ./bjam
- ओपन Xcode स्थापित करने और एक नया सी बनाने का उपयोग कर बढ़ावा पुस्तकालयों का निर्माण ++ कमांड लाइन उपयोगिता परियोजना।
- समूह & फ़ाइलें treeview में उत्पाद फ़ोल्डर में खींचें libboost_regex.dylib
- परियोजना विकल्प सेट करें ताकि बूस्ट करने के लिए हैडर खोजें पथ अंक फ़ोल्डर
- बिल्ड में शामिल हैं (विकल्प है कि यह फाइल कॉपी की अनुमति देता है की जाँच) और परियोजना चलाओ!
दुख की बात है, यदि आप कंसोल खोलकर (भागो | कंसोल) है तो आपको एक त्रुटि देखते हैं कि यह dylib नहीं मिल रहा है करने के लिए जा रहे हैं:
dyld: Library not loaded: libboost_regex.dylib
Referenced from: /Users/matt/Documents/Boost/test/GettingStarted/build/Debug/GettingStarted
Reason: image not found
तो, एक बेहतर तरीका नहीं जानने ऐसा करने के लिए एक्सकोड प्राप्त करने के लिए, आप dylib को अपने_प्रोजेक्ट/बिल्ड/डीबग में कॉपी करते हैं/और यह चलता है! हुर्रे!
विस्तार उन्मुख व्यक्ति है कि आप कर रहे हैं, तो आप मानक में में कुछ सामान टाइप इसे आज़माने के लिए:
> Subject: foo bar baz
> foo bar baz
और फिर यह segfaults।
Program received signal: “EXC_BAD_ACCESS”.
एसीके!
लेकिन कोई डर नहीं है। मुझे पता है कि समस्या क्या है! और अगर कोई मुझे इसके लिए धड़कता नहीं है, तो मैं दोपहर के भोजन के बाद समाधान पोस्ट करूंगा।
मुझे लगता है कि अगर प्रति नहीं हो रहा है, तो यह लाइब्रेरी के एक अलग (गैर-डीबग) संस्करण से जुड़ रहा है, जो बताएगा कि प्रतिलिपि चरण को क्यों जोड़ना है। –