2011-11-18 14 views
7

मैं विजुअल स्टूडियो 2005 का उपयोग करके सीके ++ प्रोजेक्ट को सीएमके में परिवर्तित कर रहा हूं और प्रोजेक्ट में शामिल संसाधन फ़ाइलों के साथ कुछ समस्या पर ठोकर खाई है।सीएमके और विजुअल स्टूडियो संसाधन फाइल

इस परियोजना में .rc फ़ाइल, .ico फ़ाइलों का एक समूह और .rc2 फ़ाइल शामिल है।

नियमित .rc फ़ाइल जेनरेट की गई परियोजना में ठीक काम करती है और संसाधन कंपाइलर का उपयोग करती है। .ico और .rc2 फ़ाइलें हालांकि समस्याएं उत्पन्न कर रही हैं, जब उन्हें अभी शामिल किया जा रहा है, क्योंकि जेनरेटेड प्रोजेक्ट में विजुअल स्टूडियो सी/सी ++ कंपाइलर का उपयोग करके उन्हें संकलित करने का प्रयास करता है।

मुझे लगता है कि इन फ़ाइलों को .rc फ़ाइल द्वारा शामिल किया गया है, इसलिए शायद यह उन्हें CMakeLists.txt फ़ाइल में शामिल करने के लिए काम नहीं करेगा, लेकिन चूंकि यह प्रोजेक्ट में उन्हें सूचीबद्ध करना संभव है (वे दृश्यमान हैं मूल परियोजना) मैं ऐसा करना चाहता हूं, ताकि जेनरेट की गई परियोजना का उपयोगकर्ता देख सके कि इन फ़ाइलों का उपयोग किया जा रहा है।

सीएमके में इन अतिरिक्त वीएस संसाधन फ़ाइलों को संभालने का सही तरीका क्या है?

+0

मुझे सीएमके नहीं पता है, लेकिन आप इस बारे में सही हैं कि संसाधन फ़ाइलों का उपयोग कैसे किया जाता है। यदि आप उन्हें CMakeLists.txt फ़ाइल में रखना चाहते हैं, तो आपको उन्हें कुछ लक्ष्य में रखना होगा जो कि नहीं बनाए जाएंगे, दस्तावेज़ीकरण में कुछ होना चाहिए। –

+0

@ जोचिमपिलबोर्ग: जानकारी के लिए धन्यवाद। हां, समस्या यह है कि मुझे सीएमके को नहीं पता है और मुझे संबंधित दस्तावेजों में कुछ भी नहीं मिला है ... :) – villintehaspam

+0

इसे मिनजीडब्लू के बारे में कुछ बग रिपोर्ट में मिला, हालांकि ऐसा लगता है कि इसे काम करना चाहिए? "आईआरसी संकेत देने वाले किसी व्यक्ति के रूप में मैंने add.executable() स्रोत सूची में resource.h/resource.rc फ़ाइलों को जोड़ा।" –

उत्तर

2

set_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC) पर आज़माएं।

1

डिफ़ॉल्ट रूप से इसे उन फ़ाइलों के साथ कुछ भी नहीं करना चाहिए। स्रोत फ़ाइल गुण LANGUAGE खाली होना चाहिए और इस प्रकार फ़ाइल के लिए फ़ाइल फ़ाइल प्रकार द्वारा जांच की जानी चाहिए। जो कुछ भी नहीं होना चाहिए क्योंकि यह कुछ ऐसा नहीं है जिसे संकलित करना चाहिए।

अपने CMakeLists.txt की जांच करें जिसमें एक set_source_files_properties कमांड नहीं है जो उस संपत्ति के साथ गड़बड़ करेगा।

आप फाइलों के साथ कुछ करना चाहते हैं, यहाँ दो तरह से काम करने के लिए कर रहे हैं: आप उन्हें जोड़ सकते हैं और चलाने के लिए उन्हें कस्टम आदेश है जब आप परियोजना का निर्माण कर सकते

add_custom_target साथ

। अनुमोदित है कि फाइलें बदल गई हैं।

config_file के साथ आप आवश्यकता होने पर उन्हें आसानी से निर्माण निर्देशिका में कॉपी कर सकते हैं। कॉपीराइट ध्वज के साथ।

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