जैसा कि बेस्मिथ कहते हैं, यदि आपका लक्ष्य आपकी स्रोत निर्देशिका को साफ रखना है, तो असली समाधान सीएमके के "out-of-source" सुविधा का उपयोग करना है। यदि आप विंडोज़ पर हैं, तो "नई निर्देशिका में कहां बाइनरी बनाएं" सेट करें, "स्रोत कोड कहां है" निर्देशिका से अलग है। आप यूनिक्स पर हैं, तो यह कुछ इस तरह चला जाता है:
cd <source directory>
mkdir build
cd build
cmake ..
make
एक अलग निर्देशिका पर CMake चला कर, निर्माण फ़ाइलों के सभी कि निर्देशिका में जाना जाएगा, और अपने स्रोतों स्वच्छ रहना होगा। (नोट: बिल्ड निर्देशिका को स्रोत निर्देशिका के अंदर नहीं होना चाहिए। अधिक जानकारी के लिए CMake wiki देखें।)
यदि "आउट ऑफ़-सोर्स" आपके लिए काम नहीं करता है, तो मैं एक खोजने में सक्षम था दूसरा विकल्प। मेरे सीएमके 2.8 के साथ स्थापित Qt4Macros.cmake
फ़ाइल से जो कुछ मैं बता सकता हूं उसके आधार पर, यह कॉन्फ़िगर पैरामीटर के रूप में सुलभ नहीं है।
SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
वैकल्पिक हल अपने एमओसी के सभी उप-फ़ोल्डर के लिए निर्माण करना चाहते हैं निर्दिष्ट करने के लिए निर्देशों में शामिल हैं बदलने के लिए है: यहाँ प्रासंगिक लाइन है।
#include "moc/mainwindow.moc"
अपने निर्माण निर्देशिका के अंदर moc
निर्देशिका बनाने के बाद, वहाँ कोई समस्या नहीं इमारत थे, और मेरे एमओसी फ़ाइल नई निर्देशिका में था।
स्रोत
2011-08-21 02:45:24
आम तौर पर, आप अपने स्रोतों को साफ रखने के लिए बाहर के पेड़ के निर्माण का उपयोग करते हैं। देखें http://www.vtk.org/Wiki/CMake_FAQ#Out-of-source_build_trees – baysmith