2012-01-12 10 views
6

में बाहरी लाइब्रेरी अब मैं अपने सी/सी ++ एप्लिकेशन के लिए ग्रहण सीडीटी का उपयोग कर रहा हूं, लेकिन जब मैं अपनी बाहरी लाइब्रेरी को लिंक करता हूं तो समस्या होती है, इसे रन टाइम पर ठीक से लोड नहीं किया जा सकता है, यहां तक ​​कि मैंने लाइब्रेरी डाली स्रोत फ़ाइल के पास फ़ाइल, मैंने लाइब्रेरी पथ दिया, और इसका नाम सही है।सी ++: ग्रहण सीडीटी

परियोजना निर्देशिका: (। सीपीपी फ़ाइलें ..)

  1. (ज फ़ाइलें) शामिल
  2. स्रोत
  3. lib (libbozorth3.a, LSFMatcher.a)

मैं अपने आवेदन के साथ स्थिर पुस्तकालयों को लिंक करना चाहता हूं, मैं इन चरणों का पालन करता हूं:

  1. प्रोजेक्ट-> गुण-> सामान्य-> पथ और प्रतीकों-> निर्देशिका पथ, और पुस्तकालय शामिल हैं (bozorth3.a, LSFMatcher.a), और लाइब्रेरी पथ जोड़ें।
  2. और यह भी मैं लिंकर खंड में ही पुस्तकालय जोड़ने के भी

जब मैं कार्यक्रम यह एक त्रुटि प्रदर्शित करता है का निर्माण नहीं मिल सकता है -lbozorth3.a नहीं मिल सकता है -lLSFMatcher.a

तो मैं की जरूरत है बाहरी पुस्तकालय को सी/सी ++ एप्लिकेशन में जोड़ने के लिए सही कदम।

+0

बारे में विचार किया: http://stackoverflow.com/questions/8370809/how-to-add-a-library-to-eclipse-c-project? – Dyonisos

उत्तर

12

मैं सामान्य रूप से

  1. पुस्तकालय कॉन्फ़िगर
  2. पुस्तकालय खोज (compiliation के लिए आवश्यक)
  3. क्रम खोज पथ (-rpath लिंकर विकल्प)

(छवियों नीचे देखें पथ और लिंकर झंडे में पथ का आदान-प्रदान करें जिसे आपने लाइब्रेरी खोज पथ में उपयोग किया था)

Library Search path Linker options for runtime search path

1

आप -Wl,-rpath=${workspace_loc}/Liball और नहीं -Wl,-rpath,${workspace_loc}/Liball उपयोग करना चाहिए।

लाइब्रेरी-एल विकल्प के तहत लाइब्रेरी जैसे उदाहरण जोड़ें। libgcc.a के लिए केवल gcc

+0

यह एक पूर्ण उत्तर नहीं है। यह FSaccilotto द्वारा दिए गए उत्तर पर निर्भर करता है। हो सकता है कि आपको इसे किसी टिप्पणी पर ले जाना चाहिए ताकि वह अपनी पोस्ट को सही कर सके, या आपको अपने लिए अधिक जानकारी जोड़नी चाहिए ताकि यह एक पूर्ण उत्तर हो। – Dzyann

0

आपको कोष्ठक में क्या है पर ध्यान देना चाहिए: अन्य विकल्प (-Xlinker [विकल्प])।

विकल्प पास करने का तरीका अलग है। इसके बजाय का उपयोग करने का:

-Wl,-rpath,'${ProjDirPath}/../../system/lib' 

आप का उपयोग करना चाहिए:

-rpath '${ProjDirPath}/../../system/lib' 

है यही कारण है कि, "-Wl," को हटा दें और दूसरा "," द्वारा "" (अंतरिक्ष) की जगह।

enter image description here

enter image description here