2011-09-28 16 views
7

मैं अपने सिस्टम पाथ पर नहीं रखे मिंगव कंपाइलर द्वारा अपने स्रोत बनाना चाहता हूं। मैं अपने स्क्रिप्ट की शुरुआत में इस की कोशिश की:सीएमके स्क्रिप्ट में पाथ पर्यावरण परिवर्तक कैसे सेट करें?

set(Env{PATH} "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 

और यह:

set(CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_LIBRARY_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_SYSTEM_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_SYSTEM_PREFIX_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 

पहले संस्करण का बिल्कुल भी काम नहीं करता। एक सुझाव है कि मैं सीएमके स्क्रिप्ट में पर्यावरण चर के मूल्य को ओवरराइट नहीं कर सकता। दूसरी स्क्रिप्ट मेरे मिंग्वा कंपाइलर को पाती है, लेकिन जीसीसी चलाने के दौरान त्रुटि को पकड़ती है (libgmp-10.dll को gcc द्वारा आवश्यक नहीं मिल सकता है)। ऐसा इसलिए है क्योंकि पैथ चर मेरे मिंगव पर सेट नहीं है।

उत्तर

1

सीएमके शुरू करने के लिए एक स्क्रिप्ट फ़ाइल लिखें।

@echo off 
set path=c:\MyProject\Tools\mingw\bin;c:\MyProject\Tools\mingw\msys\1.0\bin 
"C:\Program Files\CMake 2.8\bin\cmake-gui.exe" 

लिनक्स पर एक bash स्क्रिप्ट बनाने:

Windows पर एक बैच फ़ाइल बनाने के

export PATH=$PATH:/your/path 
+2

आप उपयोग कर सकते हैं जब बैच फ़ाइल निकलती है (यदि वांछित हो) पथ में परिवर्तन को स्वचालित रूप से पूर्ववत करने के लिए स्क्रिप्ट में सेटलोकल। पर्यावरण चर 'प्रोग्रामफाइल (x86)' और 'प्रोग्रामफाइल' भी हैं जिन्हें हार्ड कोडिंग 'सी: \ प्रोग्राम फ़ाइलें' के बजाय उपयोग किया जाना चाहिए – doug65536

2

आप इसे तक पहुंचने की संभावना है कि यह एक पार toolchain संकलन, भले ही आप इस उदाहरण में Windows के लिए लिनक्स से संकलन क्रॉस नहीं कर रहे थे:

http://www.vtk.org/Wiki/CmakeMingw

के बाद आप आपके द्वारा सेट किए गाइड का पालन करें आदेश पंक्ति पर MinGW toolchain जब cmake बुला:

~/src/helloworld/ $ mkdir build 
~/src/helloworld/ $ cd build 
~/src/helloworld/build/ $ cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake 

तो आप आपको लगता है कि बदसूरत डी में हर बार जब आप makefiles को पुनर्जीवित करना चाहते हैं टाइपिंग सीमित करने के लिए एक उपनाम बना सकते हैं कि यह एक बहुत उपयोग कर रहे हैं:

alias mingw-cmake='cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake' 
12

CMAKE_SYSTEM_PROGRAM_PATH संशोधित किया जा करने के लिए होती है, का उपयोग

LIST(APPEND CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" ...) 
संबंधित मुद्दे