2012-02-07 8 views
13

के लिए दृश्य स्टूडियो 2010 में संकलित करने के लिए दृश्य स्टूडियो 2010 (जरूरी नहीं कि MSVC संकलक) का उपयोग C/C++ विंडोज पर विकसित करने और एक द्विआधारी है कि मैं एक Linux मशीन को अपलोड कर सकते हैं पाने के लिए क्या यह संभव है (और इसे चलाने) ?कैसे लिनक्स

संभावना पर मैंने मिनीजीडब्लू या कुछ ऐसा करने के लिए किया था जो विंडोज़ बाइनरीज़ को वही काम कर रहा था जो लिनक्स बाइनरी करेगी लेकिन मुझे सभी आवश्यक पुस्तकालयों (पॉज़िक्स) के लिए सभी जीत-बंदरगाहों में समस्याएं थीं।

संपादित करें: मैं खिड़कियों लिनक्स पर द्विआधारी चलने देने के लिए नहीं करना चाहती। परिणामस्वरूप मुझे देशी लिनक्स बाइनरी चाहिए।

+2

हाँ, आप कर सकते हैं। आपको अपने क्रॉस-कंपाइलर को कॉल करने के लिए केवल कस्टम बिल्ड कार्यों को ढूंढना है (या स्वयं लिखना)। इसके अलावा, आपको एक क्रॉस-कंपाइलर ढूंढना है (या खुद को बनाना)। इन चरणों में से कोई भी अपने आप को करने में विशेष रूप से आसान नहीं है, लेकिन यदि आपके पास ऐसा करने का धैर्य है, तो वे काफी काम कर रहे हैं (मैंने दोनों किया है; इसमें कुछ हफ्तों का समय लिया गया है)। यदि आप लिनक्स के लिए सॉफ्टवेयर बना रहे हैं, हालांकि, इसे लिनक्स पर संकलित करना बहुत आसान होगा। –

+0

संपादक के अलावा, 'मेक' खोलने और चलाने की क्षमता के अलावा आईडीई की कौन सी विशेषताएं आप उपयोग करने की उम्मीद करेंगे? –

+0

@ जेम्स: आप किस क्रॉस-कंपाइलर का सुझाव देंगे? – schoetbi

उत्तर

15

आप सभी को धन्यवाद! मेरे समाधान संक्षेप है:

  1. प्लेटफॉर्म-स्वतंत्र कोड दृश्य स्टूडियो का उपयोग कर विकसित की है
  2. (लिनक्स के लिए)
  3. अंतिम बिल्ड एक आभासी बॉक्स डेबियन या RHEL चल साथ
  4. आभासी बॉक्स के भीतर
  5. आईडीई ग्रहण का उपयोग किया जाता है CDT प्लगइन
  6. उपयोग CMake दोनों दृश्य स्टूडियो और ग्रहण CMake
+0

हैलो। शायद, विषय पुराना है, लेकिन क्या मैं आपको अपने समाधान के बारे में अधिक जानकारी देने के लिए कह सकता हूं, कृपया? उदाहरण के लिए, "प्लेटफार्म-स्वतंत्र कोड विकसित किया गया है"। शायद 4 साल पहले जैसा ही मुझे एक ही समस्या है। आशा है कि प्रौद्योगिकी परिवर्तन ने आपके वर्कफ़्लो में कुछ भी बदल दिया है। मैं विभिन्न प्लेटफार्मों के लिए एक कोडबेस का उपयोग करने का सपना देखता हूं। – Michail

+0

इसका मूल अर्थ यह है कि आपको ओएस-एब्स्ट्रक्शन लेयर की आवश्यकता है। आप एक मौजूदा एक का उपयोग कर सकते हैं, या एक रैपर फ़ंक्शन में आपको आवश्यक प्रत्येक ओएस-कॉल को एपसलेट कर सकते हैं। हो सकता है कि आप इसके लिए [POCO C++] (http://pocoproject.org/) – schoetbi

0

नहीं है, मुझे नहीं लगता कि एक दृश्य स्टूडियो संकलक के साथ लक्ष्यीकरण लिनक्स/86 है कि आप कर सकते हैं पार संकलन है।

(मैं Windows पता नहीं है, लेकिन मैंने सुना है कि माइक्रोसॉफ्ट लिनक्स प्रति बहुत अनुकूल नहीं है और पार compilers विकास नहीं करता है)

सबसे आसान तरीका है आप लिनक्स/x86 के लिए अपने कोड को संकलित करने के लिए (, या एक आभासी मशीन में शायद अपने लैपटॉप पर) एक पूरा लिनक्स वितरण स्थापित करने के लिए है।

आप शायद क्रॉस-कंपाइलर को लिनक्स/x86 को लक्षित करने और विंडोज़ पर चलने के लिए जीसीसी और बिनटिल्स को संकलित कर सकते हैं, लेकिन मैं इसे एक नौसिखिया की सिफारिश नहीं करूंगा।

(यदि आपके पास केवल एकमात्र टीम है जो केवल विंडोज को जानती है, तो आपको टीम को लिनक्स सीखने के लिए संसाधन खर्च करने की ज़रूरत है, और यह आसान है कि प्रत्येक डेवलपर के पास डेस्कटॉप पर लिनक्स सिस्टम है। बेशक सीखने में समय, प्रयास करना , और इसकी लागत है; और अधिकांश प्रयास लिनक्स के तहत प्रोग्रामिंग सीखने में खर्च किए जाएंगे, उदाहरण के लिए लिनक्स सिस्टम कॉल और सामान्य एपीआई और पुस्तकालय; इसलिए दृश्य को ज्यादा जीतने वाला नहीं है, और आपको खर्च आएगा!)

+0

जैसा कि मैंने कहा था कि मुझे एमएसवीसी का उपयोग करने की आवश्यकता नहीं है। क्या ऐसी कोई परियोजना है जो ऑलराडी को इतनी क्रॉस-टूलचैन प्राप्त करने में कामयाब रही? – schoetbi

+1

मैं विंडोज का उपयोग नहीं करता, इसलिए मैं पूछने वाला सबसे अच्छा व्यक्ति नहीं हूं। हालांकि, मैंने विंडोज़ के लिए पैक किए गए बाइनरी फॉर्म में व्यापक रूप से वितरित इस तरह के एक क्रॉस-टूलचेन के बारे में कभी नहीं सुना। ** मैं दृढ़ता से आपको अपने कंप्यूटर पर लिनक्स ** स्थापित करने की सलाह देता हूं (आप इसे एक अलग डिस्क विभाजन पर स्थापित कर सकते हैं- यह विंडोज के साथ सह-अस्तित्व में होगा, और आप बूट समय पर चयन करेंगे जो ओएस बूट करने के लिए, या एक में आभासी मशीन)। –

3

मैं इस पर कुछ राय है के लिए प्रोजेक्ट फ़ाइलें उत्पन्न करने के लिए है, लेकिन यह अधिक जानकारी के बिना वजन के लिए कठिन है। ऐसा क्यों है कि आप दृश्य स्टूडियो में विकसित करना चाहते हैं? आप किस प्रकार का एप्लिकेशन लक्षित कर रहे हैं? क्या कोड परिपक्वता का स्तर है जो पहले से मौजूद है? क्या इस निर्णय को प्रभावित करने वाले टीम अनुभव के मुद्दे हैं?

मेरा घुटने-झटका प्रतिक्रिया यह है कि ऐसा लगता है कि आप लिनक्स पर्यावरण में उपयोग किए जाने वाले अनुप्रयोग को विकसित करते समय डेवलपर उत्पादकता के संदर्भ में वीएस 2010 विकास पर्यावरण के लाभ चाहते हैं। अगर मुझे इसका सामना करना पड़ा, तो शायद मैं गैर-पोर्टेबल कोड को कम करने के लिए शॉर्ट टर्म चेक-इन (एक घंटे या तो ठीक होना चाहिए) के साथ लिनक्स आधारित स्थिर एकीकरण सर्वर पर मोनो का उपयोग करके पोर्टेबल सी # को लक्षित करना होगा। । हालांकि आपने सी ++ निर्दिष्ट किया है, इसलिए शायद यह मानने के लिए कि यह एक आवश्यकता है, यह आपके लिए उपयुक्त नहीं है।

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

+0

+1 देखें। बात यह है कि हम एक रीयलटाइम एप्लिकेशन विकसित करना चाहते हैं (यही कारण है कि सी # एक विकल्प नहीं है)। टीएफएस की आवश्यकता नहीं है क्योंकि हम प्रत्येक डेवलपर के लिए स्थानीय गिट रेपो के साथ एसवीएन/जेनकींस का उपयोग करते हैं। एकीकरण परीक्षण हमेशा अच्छा है। जेनकिंस उदाहरण के लिए सॉफ़्टवेयर का परीक्षण करने के लिए वर्चुअल मशीन को भी फायर कर सकते हैं .: लिनक्स प्लेटफार्म। धन्यवाद। – schoetbi

+0

क्या आपका लक्षित प्लेटफार्म रेडहाक है? यह मेरे दिन की नौकरी की तरह लग रहा है। जब मैं निरंतर एकीकरण कहता हूं तो मेरा मतलब है कि देव छोटे बदलाव करते हैं और एक घंटे में (या अधिक बार) में चेक-इन करते हैं और उस चेक-इन को उत्पाद के स्वचालित पूर्ण निर्माण को बंद कर देते हैं, अगर यह विफल हो जाता है तो देव को तुरंत सूचित किया जाता है। मैं जेनकींस से परिचित नहीं हूं, शायद यह क्षमता प्रदान करता है। अधिमानतः प्रत्येक कोड मोड को एक परीक्षण मामले से पहले किया जाता है, लेकिन यह ऑफ-विषय है। – PatrickV

+0

नहीं, मुझे रेडहॉक नहीं पता। सीआई: यही वही है जो जेनकींस आपके लिए कर सकती है। http://jenkins-ci.org/ – schoetbi