मेरे पास मेरे प्रोजेक्ट रूट में एक CMakeLists.txt है और एक मेरे/src फ़ोल्डर में है।/Src फ़ोल्डर में से एक में केवल .cpp फ़ाइलों (set (SOURCEFILES main.cpp foo.cpp)
) के साथ एक चर शामिल है और रूट CMakeLists.txt में मैं add_subdirectory(src)
करता हूं और बाद में मैं add_executable(MyApp ${SOURCEFILES})
करता हूं।सेमेक वैरिएबल स्कोप, add_subdirectory
लेकिन cmake मुझे त्रुटि
add_executable तर्कों की गलत संख्या के साथ कहा जाता है देता है, कोई स्रोतों प्रदान की
मैं कैसे cmake मिलता है चर देखने के लिए? मैंने पढ़ा है कि cmake केवल वैश्विक चर जानता है, लेकिन यह स्पष्ट रूप से मामला नहीं है ...
धन्यवाद, यह इसे हल। लेकिन एक और नोट: उप निर्देशिका में अब आप केवल 'foo.cpp' के बजाय' $ {CMAKE_CURRENT_SOURCE_DIR}/foo.cpp' का उपयोग कर रहे हैं क्योंकि सेमेक अब मूल दायरे में है। – blubberbernd
वैकल्पिक रूप से, आप add_subdirectory कॉल से पहले मूल CMakeLists.txt फ़ाइल में चर सेट कर सकते हैं, और इसकी परिभाषा बच्चे CMakeLists फ़ाइल को प्राप्त कर सकती है। फिर, आपको फ़ाइलों के नामों को अर्हता प्राप्त करने की आवश्यकता होगी यदि आपको उन्हें एकाधिक सीएमकेलिस्ट फ़ाइलों से संदर्भित करने की आवश्यकता है। – DLRdave
आपको उप-डीआईआर/फ़ंक्शन में अपने मानों का उपयोग करने के लिए वर्तमान-दायरे में चर बनाने की आवश्यकता होगी: 'सेट (VAR मान PARENT_SCOPE); सेट (VAR $ {VAR}); ' –