का उपयोग कर ओएसएक्स पर boost :: program_options के साथ परेशानियों को जोड़ना मुझे बूस्ट 1.4 9 के साथ समस्याओं के कारण मेरे सी ++ प्रोग्राम में लिंकिंग चरण से गुजरने में परेशानी हो रही है। मैंने सी ++ (-std=c++11 -libc=libc++
) पर स्विच किया है जो कोड के दूसरे टुकड़े (जो बूस्ट का भी उपयोग करता है) के लिए ठीक काम करता है।एलएलवीएम
brew install boost --universal --with-mpi --with-icu
मुसीबत boost::program_options
साथ शुरू होता है: बूस्ट के साथ homebrew का उपयोग कर स्थापित किया गया था। मैं इस तरह लिंक त्रुटियों मिलती है:
"boost::program_options::validate(boost::any&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, int)", referenced from:
... etc. ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
यह एक छोटे से अजीब है, क्योंकि इस्तेमाल किया पुस्तकालय पर एक एनएम कर पता चलता है कि प्रतीक वहाँ प्रतीत होता है:
nm -U /usr/local/lib/libboost_program_options-mt.dylib | grep validate
0000000000019880 - 01 0000 FUN __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISbIwSt11char_traitsIwESaIwEESaIS7_EEPSsi
0000000000019880 T __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISbIwSt11char_traitsIwESaIwEESaIS7_EEPSsi
00000000000199e0 - 01 0000 FUN __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISbIwSt11char_traitsIwESaIwEESaIS7_EEPbi
00000000000199e0 T __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISbIwSt11char_traitsIwESaIwEESaIS7_EEPbi
0000000000019930 T __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISsSaISsEEPSsi
0000000000019930 - 01 0000 FUN __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISsSaISsEEPSsi
0000000000019c70 - 01 0000 FUN __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISsSaISsEEPbi
0000000000019c70 T __ZN5boost15program_options8validateERNS_3anyERKSt6vectorISsSaISsEEPbi
मैं पहले से ही की कोशिश की है स्थापना से पहले CXX और CXX_FLAGS सेट करके जीसीसी की बजाय क्लैंग के साथ बढ़ावा देने के लिए होमब्री को जोड़ना। यकीन नहीं है कि मैं सफल हुआ हालांकि।
पॉइंटर्स की बहुत सराहना की गई।
वही प्रश्न इस प्रकार है: http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp –