2012-06-13 17 views
6

कदम पर सरल बढ़ावा कार्यक्रम बनाने है:
1. sudo बंदरगाह बढ़ावा
बढ़ावा फ़ाइल/opt/स्थानीय/बढ़ावा में स्थापित, पुस्तकालय फ़ाइलें/opt/स्थानीय/lib
में हैं
2. उपयोग XCode ग
मैं कैसे मैक ओएस (शेर)

#include <iostream> 
#include <boost/asio.hpp> 
int main() { 
    return 0; 
} 


3. सेट XCode "सेटिंग बनाएँ" में बढ़ावा
पता लगाने के लिए बनाने के लिए ++ परियोजना -> "HEADER_SEARCH_PATHS"
दोनों डीबग और रिलीज में पथ/ऑप्ट/लोकल/

4. "सेटिंग्स बनाएं" -> "LIBRARY_SEARCH_PATHS" -> डीबग और रिलीज के लिए दोनों/opt/local/lib जोड़ें।

5. निर्माण कार्यक्रम और असफल रहा।
त्रुटि संदेश,

Undefined symbols for architecture x86_64: 
    "boost::system::generic_category()", referenced from: 
    ___cxx_global_var_init1 in main.o 
    ___cxx_global_var_init2 in main.o 
    "boost::system::system_category()", referenced from: 
    ___cxx_global_var_init3 in main.o 
    boost::asio::error::get_system_category() in main.o 
    "boost::asio::error::get_netdb_category()", referenced from: 
    ___cxx_global_var_init5 in main.o <br> 
    "boost::asio::error::get_addrinfo_category()", referenced from: 
    ___cxx_global_var_init6 in main.o <br> 
    "boost::asio::error::get_misc_category()", referenced from: 
    ___cxx_global_var_init7 in main.o <br> 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

एम आई प्रक्रिया में गलत?

+0

यह लगता है पर किया जाएगा एक परियोजना की तरह एक पुस्तकालय के खिलाफ लिंक करने के लिए एक प्रश्न की तरह अधिक होने के लिए। पथ पर्याप्त नहीं है, लेकिन पुस्तकालय को भी निर्दिष्ट करना होगा। – lpapp

उत्तर

8

आप (कुछ प्रत्यय के साथ, कि तुम कैसे बनाया बढ़ावा पर निर्भर करता है) Boost.System साथ लिंक करने के लिए है, जो /opt/local/lib/libboost_system में होना चाहिए

कि अपने Xcode प्रोजेक्ट में जोड़े की जरूरत है।

+0

स्वीकृति की कमी के बावजूद यह सही है। मैंने डॉक्स में यह सुनिश्चित किया कि यह पर्याप्त है [यहां पर] [http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/using.html#boost_asio.using.dependencies)। –

+0

आप अपने एक्सकोड प्रोजेक्ट में कुछ कैसे जोड़ते/ऑप्ट करते हैं?/ऑप्ट एक अदृश्य फ़ोल्डर है। –

+0

@WarrenP मैं शॉर्टकट के रूप में खोजक के lefeside में खींच/ऑप्ट/फ़ोल्डर। मैं सभी छिपी हुई फाइलें भी दिखाता हूं लेकिन एक्सकोड लाइब्रेरी लिंकिंग पैनल में भी नहीं दिखा सकता। – CCC

4
  1. का चयन अपने "लक्ष्य"
  2. "पुस्तकालयों के साथ लिंक बाइनरी" में
  3. खंड पर टैब "चरणों का निर्माण", को बढ़ावा देने पुस्तकालय जोड़ने के तहत।
  4. MacPort के माध्यम से इंस्टॉल करते हैं, को बढ़ावा देने /opt/local/lib पर किया जाएगा,
    काढ़ा के माध्यम से इंस्टॉल करते हैं, को बढ़ावा देने /usr/local/Cellar/boost पर किया जाएगा,
    खुद के द्वारा निर्माण है, यह /usr/local/lib by default या yourBoostLib/stage/lib