2010-05-02 24 views
7

मैं जीसीसी द्वारा इस लक्ष्य को हासिल कर सकते हैं:मैं क्रीमैक को कंसोल विंडो बनाने के लिए कैसे कहूं?

gcc -mwindows -o simple simple.c 

लेकिन केवल cmake में यह लगता है:

add_executable(simple WIN32 simple.c) 

लेकिन यह वास्तव में -mwindows के रूप में ही नहीं है,

इस के लिए प्रवेश बिंदु की आवश्यकता होगी WinMain,

जबकि gcc -mwindows की आवश्यकता नहीं है (हो सकता है)।

मुझे इसे ठीक से कैसे करना चाहिए?

+0

यह http://stackoverflow.com/questions/2752792/whats-the-equivalent-of-gccs-mwindows-option-in-cmake का डुप्लिकेट है। – MKroehnert

उत्तर

12

यदि आप का उपयोग करें:

add_executable(simple WIN32 simple.c) 

तो आप एक WinMain समारोह प्रदान करनी चाहिए। Add_executable अर्थों के लिए WIN32 ध्वज यही है: इसका मतलब है कि आप इसे एक विंडोज प्रोग्राम बनाने जा रहे हैं, और WinMain फ़ंक्शन प्रदान करते हैं।

यदि आप वास्तव में एक विंडोज़ एप्लिकेशन लिख रहे हैं तो मैं इसे इस तरह से करने की सलाह दूंगा। यह सबसे अधिक समझ में आता है और अंतर्निहित ओएस के साथ सबसे स्वाभाविक रूप से फिट बैठता है।

हालांकि, यदि आप अभी भी "-mwindows" ध्वज जीसीसी पास करना चाहते हैं, लेकिन किसी भी "मुख्य" का उपयोग करें, तो बस "-mwindows" को CMAKE_CXX_FLAGS और/या CMAKE_C_FLAGS मान में जोड़ें। आप सहभागी वे चर का समायोजन "-mwindows" शामिल करने से cmake-जीयूआई कार्यक्रम में यह कर सकते हैं या आप आदेश पंक्ति CMake के साथ यह कर सकते हैं, इस तरह:

cmake -DCMAKE_C_FLAGS="-mwindows" 
+0

बस यह पाया और यह cmake प्लस एक कंसोल-कम विंडोज ऐप की एक बहुत परेशान समस्या हल हो गई। विशेष रूप से कंसोल को हटाने की इच्छा परियोजना में अच्छी तरह से बनाई गई थी और सेमीकेक जादू को बुनाई के बाद भी अच्छी तरह से बनाया गया था। धन्यवाद! – Darakian

1

DLRdave के रूप में कह ने कहा है कि निष्पादन इच्छा Win32 एक होने का मतलब है कि इसमें WinMain प्रविष्टि बिंदु के रूप में होगा और एक विंडोज़ एप्लिकेशन होगा।

यदि एप्लिकेशन अभी भी क्रॉस प्लेटफॉर्म होना है तो कंसोल विंडो को दबाने के सामान्य साधन हैं, लेकिन फिर भी मुख्य उपयोग का उपयोग एसडीएल या एसएफएमएल पुस्तकालयों में पाए गए WinMain को लिखना है जो केवल मुख्य कार्य को कॉल करता है वैश्विक चर __argc और __argv तर्क के रूप में और इसके परिणाम देता है।

यह एप्लिकेशन को कंसोल विंडो होने से रोकता है लेकिन प्रवेश बिंदु के रूप में WinMain का उपयोग करने के कोड में व्यवधान को कम करता है।

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