2011-08-24 15 views
25

अतीत Xcode 4 में कुछ बिंदु से शुरू के लिए बनाया गया dylib रूप से लिंक हो:एप्पल मच-ओ लिंकर (आईडी) चेतावनी: MacOSX के लिए निर्माण, लेकिन लिंकर समस्याओं के बारे में शिकायत में आईओएस

ld: warning: building for MacOSX, but linking against dylib built for iOS: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//CoreGraphics.framework/CoreGraphics

मैं जाँच की है सब कुछ लेकिन अभी भी कॉन्फ़िगरेशन में कुछ भी संदिग्ध नहीं है और यह संकलित करता है और चलता है। कोरग्राफिक्स.फ्रेमवर्क से पहले मुझे केवल एक चीज दिखाई देती है, मुझे क्यों पता नहीं है। कोशिश की कोशिश की और "बिल्ड चरण" पर फिर से लाइब्रेरी जोड़ें जो मदद नहीं की थी।

उत्तर

-3

यह समस्या Xcode में गलत फ्रेमवर्क संस्करण शामिल करने के कारण है। यह परियोजना मैक ओएस एक्स के लिए बनाई गई है, लेकिन यह आईओएस संस्करण के ढांचे का उपयोग करती है।

5

कभी-कभी कमांड लाइनों के लिए बिल्ड लॉग को देखकर एक्सकोड समस्याओं को डीबग करना आसान होता है।

आप कमांड लाइन से निर्माण कर रहे हैं, तो आप उस संदेश प्राप्त कर सकते हैं अगर आप -miphoneos-संस्करण मिनट निर्दिष्ट नहीं करते हैं =

This compiles: 
(where conftest.c just contains int main() {}) 
/Applications/Xcode5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 --sysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk --sysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -miphoneos-version-min=6.0 conftest.c 

And this gives the error: 
/Applications/Xcode5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 --sysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk --sysroot /Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk conftest.c 
ld: building for MacOSX, but linking against dylib built for iOS Simulator file '/Applications/Xcode5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/usr/lib/libSystem.dylib' for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

यह मेरी समस्या का समाधान है, मेरा स्वादिष्ट अपवोट है। – Gui13

+4

एक्सकोड प्रोजेक्ट में इन थिग्स को कहां जोड़ना है? मैं एक्सकोड से संकलित कर रहा हूं, कमांड लाइन से नहीं ... यह त्रुटि है जो मुझे ** ld: आईओएस सिम्युलेटर के लिए बिल्डिंग, लेकिन मैकोज़क्स फ़ाइल '/usr/lib/libSystem.B के लिए निर्मित डाइलिब के खिलाफ लिंक करना है। आर्किटेक्चर के लिए .dylib 'i386 क्लैंग: त्रुटि: लिंकर कमांड निकास कोड 1 के साथ विफल रहा (उपयोग -v को देखने के लिए उपयोग करें) ** _Others Linker Flat_ सेक्शन में libSystem.B.dylib की एक प्रविष्टि है .. लेकिन हटा रहा है यह इस मुद्दे को हल नहीं करता है। – Ans

4

अपने मुख्य लक्ष्य के लिए अपने फ्रेमवर्क खोजें पथ की जाँच करें और आपका परीक्षण लक्ष्य।

मेरे पास बहुत सारे बकवास थे।

वर्ष XCode 4 में लिखा परियोजना था और सिर्फ अपने परीक्षण परियोजना

Project Navigator > click on project at top > 
Targets > Build Settings > Framework Search Paths 

TARGET:my_project 
$(inherited) 
"$(SRCROOT)" 
"$(SRCROOT)/my_project" 

TEST:my_projectTests 
"$(SDKROOT)/Developer/Library/Frameworks" <<XCTest.framework is here 
"$(DEVELOPER_LIBRARY_DIR)/Frameworks" 
"$(SRCROOT)/.." 
"$(SRCROOT)"        << Documents/my_project 
"$(SRCROOT)/my_project"     << Documents/my_project/my_project 

where directory structure is 
Documents/my_project 
    my_project.xcodeproj 
    /my_project 
चलाने के लिए XCode 5.

यहाँ में यूनिट टेस्ट उपयोग शुरू कर दिया न्यूनतम मैं प्राप्त करने के लिए है

नोट: यदि आप एक्सकोड में एक ढांचा खींचते हैं। XCode 5 पथ हार्डकोड की बुरी आदत

/Users/gbxc/Documents/my_project 

"$(SRCROOT)"        << Documents/my_project 
"$(SRCROOT)/my_project"     << Documents/my_project/my_project 
तो

होना चाहिए, अगर आप अपने प्रोजेक्ट समस्याओं

सबसे अच्छा तरीका क्या है सही एक नया बनाने के लिए है की जाँच करने के लिए ले जाया गया है मिल सकता है एकल दृश्य परियोजना जो परीक्षण चलाती है ठीक है।

Run the Test action 
By default it fails but at least testing is running 
then compare the Framework Search Paths. 
+0

* टेस्ट लक्ष्य में खोज ढांचे के क्रम को बदलने से यह मेरे लिए तय हो गया। सुनिश्चित करें कि $ (विरासत) "$ (SDKROOT)/डेवलपर/लाइब्रेरी/फ्रेमवर्क" से पहले नहीं है। – Marius

0

आप कार्थेज का उपयोग कर और एक मैक अनुप्रयोग संकलित कर रहे हैं, तो यह आपके प्रोजेक्ट की Framework Search Paths आपको पता चल सकता $(PROJECT_DIR)/Carthage/Build/iOS की तरह कुछ पर खोज।

मेरी समस्या को ठीक करने से हटा रहा है।