2011-01-12 15 views
12

मैं cmake के साथ एक परियोजना को संकलित करने की कोशिश की, लेकिन मैं निम्नलिखित त्रुटि मिली:CMake संकलन त्रुटि

[email protected]:~/oooark$ cmake . 
CMake Error at CMakeLists.txt:19 (message): 
    In-source builds are not allowed. 

उदाहरण के लिए चलाएँ:

rm CMakeCache.txt 
mkdir build 
cd build 
cmake .. 
make 
-- Configuring incomplete, errors occurred! 

किसी को भी मेरी मदद कर सकते हैं?

+0

क्या आप सुनिश्चित हैं कि 'मेक' स्थापित किया गया है? जांचें कि क्या 'मेक' और 'gcc' दोनों सही तरीके से स्थापित हैं .. – Sen

+0

क्या आप हमें लाइन 1 पर CMakeLists.txt दिखा सकते हैं? – tibur

+0

तो, आप त्रुटि संदेश क्यों नहीं पढ़ते हैं और यह क्या कहते हैं? – user562374

उत्तर

21

जैसा कि सहायता संदेश कहता है: CMakeCache.txt फ़ाइल को हटाएं, बिल्ड नामक एक उपनिर्देशिका बनाएं, उस निर्देशिका में बदलें, फिर वहां से सेमेक को फिर से चलाएं।

rm CMakeCache.txt 
mkdir build 
cd build 
cmake .. 
make 

ऐसा इसलिए है क्योंकि आप "cmake" चलाते हैं। स्रोत पेड़ के शीर्ष में। स्रोत निर्देशिका में सेमेक चलाने से रोकने का कारण स्रोत पेड़ को उस पर चलने वाले कलाकृतियों को बनाने के लिए रोकना है।

+0

से जांचें अच्छा उत्तर। क्या आप कृपया और बता सकते हैं? ये "कलाकृतियों का निर्माण" क्या हैं? तो निर्देशिका संरचना में इसके भीतर बिल्ड, lib, bin फ़ोल्डर्स होना चाहिए? और हम खाली निर्माण फ़ोल्डर में cmake बनाते हैं? जनरेटेड बिल्ड फाइलें बिल्ड फ़ोल्डर में लिखी गई हैं। ये आउटपुट फाइलें हैं। –

1

पिछला निर्माण ने CMakeCache.txt और निर्देशिका सीएमकेफ़ाइल बनाई है। इस फाइल और और निर्देशिका निकालें के रूप में:

llvm_src अपने रूट निर्देशिका है जहां LLVM अनज़िप है या

$ cd <llvm_src> 
$ cd <llvm_src> 
$ rm -rf CMakeCace.txt CMakeFiles 
$ mkdir build 
$ cd build 
$ cmake -G "Unix Makefiles" <llvm_src> 

कि निर्माण निर्देशिका में makefiles उत्पन्न करनी चाहिए डाउनलोड किया।

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=<path_to_install_directory> . && make all install