2009-10-01 13 views
9

मैं मैं Mac OS 10.6 उपयोग कर रहा हूँ क्यूटी निर्माता 1.2.1, heeeeeeelp साथ यह विकल्प के साथ बनाता है क्यूटी के साथ कुछ मुसीबतों हो रही है "-lrt"पुस्तकालय QtCreator [मैक ओएस] के साथ -lrt के लिए नहीं मिला

!

इस पूर्ण निर्माण आदेश है:

जी ++ -headerpad_max_install_names -ओ AMiningCoreTest main.o tokenizer.o DictionnaryToolBox.o mysql.o btree.o BTreeDataTable.o tcaccess.o -एल/Library/Frameworks एल/usr/lib/mysql -lmysqlclient एल/usr/स्थानीय/lib/-ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc

और यह

साथ समाप्त होता है

ld: पुस्तकालय -lrt collect2 के लिए नहीं मिला: ld 1 से बाहर निकलें स्थिति

उत्तर

9

प्रोग्राम को पुस्तकालय की आवश्यकता क्यों है?

मुझे पता है कि कुछ प्लेटफॉर्म (सोलारिस दिमाग में आते हैं) कुछ कार्यों के लिए लाइब्रेट की आवश्यकता होती है जो आपके ओएस में अन्य पुस्तकालयों में मौजूद हो सकती हैं। (sem_init() et al। इस तरह हैं)

आप बिना -lrt के लिंक करने का प्रयास कर सकते हैं और देख सकते हैं कि यह काम करता है या नहीं।

+1

हाँ मैंने -lrt लाइब्रेरी को अक्षम करने के लिए बिल्ड कमांड को संशोधित किया है और यह काम करता है :) धन्यवाद ^^ – Houssem

13

लिंकर librt जो शायद Posix वास्तविक समय एक्सटेंशन पुस्तकालय है नहीं मिल सकता है लौट आए। मुझे नहीं लगता कि यह ओएसएक्स पर उपलब्ध है। Googling सूची से से Apple developer lists

प्रश्न यह देता है

मैं बनाने के लिए एक सिम्युलेटर (लिनक्स पर) मेरा विश्वविद्यालय में विकसित किया है और मैं लिंकर कि librt.a खोजने में असमर्थ रहा है द्वारा त्रुटि मिलती है कोशिश कर रहा हूँ - में कोड) clock_gettime (के लिए प्रयोग किया जाता है और मैं अगर इस तरह के पुस्तकालय का एक बंदरगाह, या कुछ अन्य समान कार्य है कि मुझे और भी मैक ओएस एक्स

उत्तर librt पर संकलित करने के लिए अनुमति देता है पता करना चाहते हैं एए सिस्टम वी है पुस्तकालय का नाम जिसमें POSIX उन्नत रीयलटाइम [RT} विकल्प फ़ंक्शन शामिल हैं। विशिष्ट कार्य आप के बारे में पूछ रहे हैं [टीएमआर] विकल्प का हिस्सा है। यदि मैक ओएस एक्स ने इसका समर्थन किया है, तो यह libSystem.B, dylib, librt.a में नहीं होगा। सवाल में समारोह मैक ओएस एक्स के द्वारा समर्थित नहीं है

आपका कोड है कि क्या वैकल्पिक लागू करने के लिए चीजों ऊपर और UNIX मानक से परे, लक्ष्य ओएस में लागू किया जाता है और नहीं वे कर रहे हैं, तो देखने के लिए जाँच करनी चाहिए, एक अलग इंटरफ़ेस का उपयोग करें।

+1

काफी आसानी से, POSIX को '-lrt' को काम करने की आवश्यकता है। ऐसा लगता है कि संकलक को POSIX मानक 'c99' कमांड के साथ बुलाया जाता है जब उस ध्वज को अनदेखा करके ऐप्पल को हल किया गया। http://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html#tag_20_11_13_01 –

संबंधित मुद्दे