2010-09-19 11 views
9

मैं लिनक्स उबंटू 10.04 चला रहा हूं और मेरे पास विंडोज 7 मशीन है और एक मैकबुक मैक ओएस एक्स 10.6.4 चल रहा है। मैं कैसे एक साधारण सी प्रोग्राम की तरह लिख सकते हैं ( नहीं क्यूटी में के रूप में!):क्रॉस प्लेटफार्म सी?

#include <stdio.h> 

int main(int argc, char **argv) 
{ 
    printf("Hello Linux and Mac and Windows!") 
    return 0; 
} 

Ubuntu पर इस कार्यक्रम है, तो संकलित करने के लिए विंडोज 7 होने, तो मैक ओएस के बिना मेरे सभी मशीनों को चलाने के लिए एक्स? क्या मैं इसे उबंटू में बना सकता हूं और इसे कई अलग-अलग ऑपरेटिंग सिस्टम पर चलाने के लिए संकलित कर सकता हूं?
अद्यतन
मेरा मतलब यह नहीं है कि सभी को चलाने के लिए एक बाइनरी तैयार करें। मेरा मतलब है एक ही ओएस में एक ही सी कोड से तीन बाइनरी का उत्पादन करना।

+1

संभावित डुप्लिकेट [लिनक्स या विंडोज़ में ओएस एक्स के लिए कैसे संकलित करें?] (Http://stackoverflow.com/questions/693952/how-to-compile-for-os-x-in-linux-or- खिड़कियां) – richq

+0

मुझे ऐसा नहीं लगता है। मेरे पास पहले से ही एक मैक चल रहा ओएस एक्स है। –

+0

विश्वसनीय आउटपुट प्राप्त करने के लिए आपको 'printf()' कथन में एक नई लाइन शामिल करने की आवश्यकता होगी। –

उत्तर

11

एक निष्पादन योग्य का एक विशिष्ट प्रारूप (उदा। ईएलएफ) और वास्तुकला (उदा। X86) है। इस प्रकार, आपको कई बार संकलन करना होगा। हालांकि, उदाहरण के लिए क्रॉस-संकलन करना संभव है उबंटू से विंडोज 7 x86 और मैक ओएस एक्स x86। जैसा कि आप उम्मीद करेंगे, प्रत्येक के लिए प्रक्रियाएं अलग-अलग हैं।

विंडोज के लिए, आप mingw32 चाहते हैं। Compile Windows C console applications in Linux देखें।

ओएस एक्स के लिए, How to compile Intel Mac binaries on Linux? देखें, जो a tutorial से लिंक है।

आप प्रत्येक पर अधिक जानकारी प्राप्त करने के लिए खोज सकते हैं।

+0

ओएस एक्स ट्यूटोरियल के लिए, यह पुराना लगता है। क्या यह आईफोन एसडीके के लिए भी काम करेगा? –

+0

आप MingW32 के विकल्प के रूप में [Cygwin] (http://cygwin.org/) का उपयोग कर सकते हैं। –

+0

@ मोहित, मुझे नहीं पता, आपने मैकबुक के बारे में पूछा था। लिनक्स-> आईफोन के लिए, [ लिनक्स में आईफोन ऐप विकास शुरू करना देखें? ] (http://stackoverflow.com/questions/276907/starting-iphone-app-development-in-linux); हालांकि, यह निश्चित रूप से सरल नहीं है। –

2

दुर्भाग्यवश, लिनक्स, विंडोज और ओएसएक्स द्वारा उपयोग किए जाने वाले निष्पादन योग्य फ़ाइल प्रारूपों में विस्तार से गहराई से भिन्न हैं। एक ही द्विआधारी उत्पादन करने का कोई तरीका नहीं है जो तीनों पर काम करता है।

यह (आप की तरह किसी भी अन्य संयोजन में या विपरीत) लिनक्स से पार कम्पाइलरों के उपयोग लेकिन निर्माण पर्यावरण की स्थापना Windows और OSX निष्पादनयोग्य उत्पन्न करने के लिए संभव है शायद और अधिक परेशानी से इसके लायक है। यदि आप वास्तव में कोशिश करना चाहते हैं तो http://www.kegel.com/crosstool/ देखें।

+1

अपडेट की जांच करें, मेरा मतलब एकाधिक प्लेटफ़ॉर्म पर चलाने के लिए सिंगल बाइनरी बनाने का नहीं है। –

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