2011-09-02 12 views
7

पर एक पुस्तकालय से जोड़ने के लिए निर्देशिका हैं मैं मैक ओएस एक्स पर CMake साथ Google Test का निर्माण और दो साझा पुस्तकालयों प्राप्त किया है। और अब मुझे दोनों को स्थापित करने की जरूरत है। मुझे पता है कि लिनक्स पर कुछ डिफ़ॉल्ट खोज निर्देशिकाएं हैं, जैसे /usr/lib, /usr/local/lib, आदि .. लेकिन मैं मैक ओएस एक्स से अपरिचित हूं और यह नहीं जानता कि उन पुस्तकालयों को कहां रखा जाए । ~/Library, /लाइब्रेरी और /usr/lib:क्या डिफ़ॉल्ट खोज मैक ओएस एक्स

Mac OS X Directory Structure में, मैं पुस्तकालयों में से तीन निर्देशिका देखते हैं पाते हैं। और मैंने क्रमशः इन निर्देशिकाओं में gtest पुस्तकालयों को रखने की कोशिश की है और केवल /usr/lib काम करता है।

जो मैं जानना चाहता हूं वह गीला है पर डिफ़ॉल्ट खोज निर्देशिकाओं के बारे में कुछ नियम हैं मैक ओएस एक्स बस लिनक्स और विंडोज़ की तरह।

+0

मुझे आश्चर्य है कि "libgtest_main.dylib" शब्द का इटैलिक प्रभाव क्यों नहीं है क्योंकि मैंने पहले और बाद में '' * '' दर्ज किया है। –

+0

मैंने सवाल उठाया। क्योंकि यह एक ऐसी चीज है जिसे अक्सर गलत किया जाता है, यह मुझे पीड़ा देता है। नीचे aponomarenko के जवाब पर मेरी टिप्पणी देखें। –

उत्तर

6

dyld लिंकर द्वारा इस्तेमाल किया वातावरण चर के लिए डिफ़ॉल्ट मान पर एक नज़र डालें:

DYLD_FALLBACK_LIBRARY_PATH
      ...
डिफ़ॉल्ट रूप से, यह करने के लिए $ सेट किया गया है (होम)/lib:/usr/local/lib:/lib:/usr/lib

This "मैक ओएस एक्स पर एक एप्लिकेशन को तैनात करना" और other "मैक ओएस एक्स इंस्टॉलर" के बारे में लेख भी मदद कर सकता है।

+1

आप निश्चित रूप से "गैर उपयोगकर्ता निर्देशिका" जैसे/lib आदि में लाइब्रेरी को तैनात नहीं करते हैं। आमतौर पर एक मैक एप्लिकेशन को AppName.app निर्देशिका में बंडल किया जाता है। कुछ भी आपको अपनी libs डालने से रोकता है; डी दो लिंक काफी अच्छे हैं। –