stdout

2011-03-14 16 views
8

पर डीआईआर या इको जैसे कमांड के लिए EXECUTE_PROCESS आउटपुट दिखाएं, मैं प्रोग्राम चल रहा है, जबकि EXECUTE_PROCESS कमांड पर शुरू की गई कमांड का आउटपुट सीधे देखना चाहता हूं।stdout

मैं जब कमांडलाइन से चला यह पैदा करता है इस

D:\tmp\testCMake\_build>"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe" . 
-- Configuring done 
-- Generating done 
-- Build files have been written to: D:/tmp/testCMake/_build 

मैं सीधे कंसोल पर dir से उत्पादन देखना चाहेंगे निम्न परीक्षण CMakeLists.txt फ़ाइल

PROJECT(TEST) 
cmake_minimum_required(VERSION 2.8) 

EXECUTE_PROCESS(COMMAND dir) 

है।

मुझे पता है कि मैं OUTPUT_VARIABLE और ERROR_VARIABLE तर्कों का उपयोग कर आउटपुट कैप्चर कर सकता हूं। लेकिन, यह आदेश चलाने के अंत में परिणाम प्रदान करता है।

प्रलेखन उत्पादन सामान्य रूप से के माध्यम से

पारित किया जाना चाहिए, तो के अनुसार कोई OUTPUT_ * या Error_ * विकल्प हैं दिया उत्पादन CMake प्रक्रिया ही की इसी पाइप के साथ साझा किया जाएगा।

execute_process(COMMAND cmd /c dir) 

बजाय:

मैं CMake उपयोग कर रहा हूँ

उत्तर

9

कोशिश Windows Vista पर 2.8.3। 'डीआईआर' एक अंतर्निहित शेल कमांड है। 'execute_process' को * .exe फ़ाइल नाम की उम्मीद है क्योंकि यह COMMAND के बाद पहला तर्क है। (या कुछ exe पथ में उपलब्ध है।)

वास्तव में, यदि आप में खुदाई और अपने मूल execute_process कॉल के साथ गलत क्या है पता लगाने के लिए ...

execute_process(COMMAND dir RESULT_VARIABLE rv) 
message("rv='${rv}'") 

कोशिश ... आप मिल जाएगा इस उत्पादन:

rv='The system cannot find the file specified' 

काफी है कौन सा अगर आप WIN32 CreateProcess कॉल करने के लिए "dir" पारित कर दिया है कि तुम क्या मिल चाहते हैं।

+0

आप सही हैं। मैंने यह जांच नहीं की। समस्या यह है कि यह अभी भी सीएमके जीयूआई में दिखाई नहीं दे रहा है, लेकिन मुझे शायद यह एक और सवाल बनाना चाहिए। – pkit

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