2009-12-21 23 views
6

पर एक कस्टम कंपाइलर जोड़ें मेरे पास एक एआरएम कॉर्टेक्स-एम 3 के लिए एक कार्यशील जीसीसी 4.3.3 टूलचेन है और इसे एक्सकोड में एकीकृत करना चाहते हैं।एक्सकोड 3.2

क्या अंतर्निहित जीसीसी 4.2 के बजाय इस जीसीसी टूलचैन का उपयोग करने के लिए एक्सकोड (3.2) सेट अप करने का कोई तरीका है?

मैंने अभी तक क्या प्रयास किया है: मैंने GCC 4.2.xcplugin की एक संशोधित प्रति जोड़ा है और नाम, संस्करण और निष्पादन योग्य पथ बदल दिया है। यह XCode में दिखाई देता है लेकिन जब भी मैं इसके साथ विफल रहता है कस्टम संकलक करने के लिए "C/C++ संकलक संस्करण" सेट

GCC_VERSION के लिए अमान्य मान '4.3.3'

यह मान्य की तरह लगता है संस्करण संख्या कहीं और हार्डकोड की जाती है क्योंकि जब भी मैं मूल GCC 4.2.xcplugin हटा देता हूं, तो मूल्य 4.2 मान्य रहता है (लेकिन अब "सी/सी ++ कंपाइलर संस्करण" में दिखाई नहीं देता है)।

उत्तर

5

FYI करें - मैं जीसीसी 4.4 नवीनतम Xcode 3.2.4 झंडे सहित में एकीकृत मिला - http://skurganov.blogspot.com/

+0

पर ब्लॉग मैं अगर यह रूप में अच्छी तरह एआरएम जीसीसी के लिए काम करता है की कोशिश करनी होगी देखें ... – rluba

+0

यह Xcode 3 के लिए काम करता है, लेकिन एक्सकोड 4 के लिए नहीं ... कोई भी विचार Xcode 4 में कस्टम कंपाइलर को एकीकृत करने के लिए कैसे? – x2on

1

मैं इस पर काम कर रहा हूं।

वर्तमान में, ऐसा लगता है कि आपको एक निर्मित कंपाइलर रेफ स्पेक का उत्तराधिकारी होना है।

की एक प्रमुख जोड़ना:

BasedOn = "com.apple.compilers.gcc.4_2"; 

सही ढंग से प्लगइन लोड बनाता है। हालांकि, सेब विशिष्ट कंपाइलर पैच के कारण अमान्य झंडे का मुद्दा है। मैं अभी उस हिस्से पर काम कर रहा हूं।

1

मुझे काम करने के लिए संकलन चरण मिल गया है। ऐसा करने के लिए:

  1. /डेवलपर में/Library/Xcode/प्लग इन
  2. cp "जीसीसी 4.2.xcplugin" "जीसीसी शाखा 4.4.1.xcplugin"
  3. सीडी "जीसीसी शाखा 4.4.1 .xcplugin "/ सामग्री
  4. संशोधित Info.plist (सख्ती से आवश्यक नहीं हो सकता)
 
8c8 
- com.apple.xcode.compilers.gcc.arm-4_4_1 
--- 
+ com.apple.xcode.compilers.gcc.4_2 
12c12 
- GCC Arm 4.4.1 Compiler Xcode Plug-in 
--- 
+ GCC 4.2 Compiler Xcode Plug-in 
  1. सीडी संसाधन
  2. ,210
  3. mv "जीसीसी 4.2.xcspec" "जीसीसी शाखा 4.4.1.xcspec"
  4. संशोधित "जीसीसी शाखा 4.4.1.xcspec"
 
10c10 
-  Identifier = "com.apple.compilers.gcc.arm-4_4_1"; 
--- 
+  Identifier = "com.apple.compilers.gcc.4_2"; 
13,16c13,16 
-  Name = "GCC Arm 4.4.1"; 
-  Description = "GNU Arm C/C++ Compiler 4.4.1"; 
-  Version = "arm-4.4.1"; 
--- 
+  Name = "GCC 4.2"; 
+  Description = "GNU C/C++ Compiler 4.2"; 
+  Version = "4.2"; 
39c39 
-   "com.apple.compilers.gcc.headers.arm_4_4_1", 
--- 
+   "com.apple.compilers.gcc.headers.4_2", 
42c42 
-  ExecPath = "$(PLATFORM_DEVELOPER_BIN_DIR)/gcc-arm.4.4.1"; 
--- 
+  ExecPath = "$(PLATFORM_DEVELOPER_BIN_DIR)/gcc-4.2"; 
48,49c48,49 
-  SupportsZeroLink = No; 
-  "SupportsPredictiveCompilation" = No; 
--- 
+  SupportsZeroLink = Yes; 
+  "SupportsPredictiveCompilation" = Yes; 
52,53c52,53 
-  "SupportsMacOSXDeploymentTarget" = No; 
-  "SupportsMacOSXMinVersionFlag" = No; 
--- 
+  "SupportsMacOSXDeploymentTarget" = Yes; 
+  "SupportsMacOSXMinVersionFlag" = Yes; 
88a89,90 
-      "-arch", 
-      "$(value)", 
  1. लिंक/डेवलपर /usr/bin/gcc-arm.4.4.1

विकी सुधारण के कारण, उपरोक्त diff सटीक नहीं है, लेकिन प्रासंगिक जानकारी वहां है। मैंने जो महत्वपूर्ण टुकड़ा देखा है (और जो आपने ऊपर गलत पाया है) यह है कि पहचानकर्ता परिवर्तन संस्करण संख्या परिवर्तन के साथ मेल खाना चाहिए ("।" के साथ "_" के साथ प्रतिस्थापित किया जाना चाहिए)।

संकलन के लिए पैरा पैरामीटर कार्यों से छुटकारा पा रहा है, लेकिन लिंक करने के लिए नहीं। चूंकि मेरा जीसीसी इस पैरामीटर को स्वीकार नहीं करेगा क्योंकि मैं इस समय लिंक नहीं कर सकता। जब तक मुझे इसे ठीक करने का कोई और तरीका न मिल जाए, तो शायद मैं इस विकल्प को बाहर करने के लिए निष्पादन योग्य जीसीसी के बजाय एक स्क्रिप्ट डालूंगा।

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