Xcode로 컴파일하려고 할 때 다음 오류가 발생합니다.
**Ld /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator/iKosher.app/iKosher normal i386
cd /Users/doronkatz/Sites/xCode/iKosher
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Xcode4/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk -L/Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator -L/Users/doronkatz/Sites/xCode/iKosher -F/Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator -filelist /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Intermediates/iKosher.build/Debug-iphonesimulator/iKosher.build/Objects-normal/i386/iKosher.LinkFileList -mmacosx-version-min=10.6 -all_load -ObjC -Xlinker -objc_abi_version -Xlinker 2 -lz -framework Security -framework CFNetwork -framework CoreData -framework Foundation -framework UIKit -framework CoreGraphics -framework QuartzCore -o /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator/iKosher.app/iKosher
Undefined symbols for architecture i386:
"_UTTypeCreatePreferredIdentifierForTag", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_UTTypeCopyPreferredTagWithClass", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassMIMEType", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassFilenameExtension", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_SCNetworkReachabilitySetCallback", referenced from:
-[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[Reachability stopNotifier] in Reachability.o
"_SCNetworkReachabilityCreateWithName", referenced from:
+[Reachability reachabilityWithHostName:] in Reachability.o
"_SCNetworkReachabilityCreateWithAddress", referenced from:
+[Reachability reachabilityWithAddress:] in Reachability.o
"_SCNetworkReachabilityGetFlags", referenced from:
-[Reachability currentReachabilityStatus] in Reachability.o
-[Reachability isReachable] in Reachability.o
-[Reachability isConnectionRequired] in Reachability.o
-[Reachability isConnectionOnDemand] in Reachability.o
-[Reachability isInterventionRequired] in Reachability.o
-[Reachability isReachableViaWWAN] in Reachability.o
-[Reachability isReachableViaWiFi] in Reachability.o
...
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status**
무슨 뜻인지 잘 모르겠습니다.
답변
ASIHTTPRequest를 사용하고 있으므로 프로젝트를 설정해야합니다. 여기에서 두 번째 부분을 읽으십시오.
답변
이런 종류의 것이 갑자기 나타나면 일반적으로 프로젝트에 필요한 프레임 워크가 누락되었음을 의미합니다. 라이브러리 및 종속 프로젝트에는 프레임 워크가 필요할 수 있으므로 최근에 프레임 워크를 추가 한 경우이 오류가 발생할 수 있습니다.
프레임 워크를 추가하려면 프로젝트보기에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고을 선택한 Add
다음 Existing frameworks...
목록에서 선택 합니다. 그런 다음 누락 된 기호가있는 프레임 워크를 찾으십시오.
필요한 프레임 워크를 찾는 방법에 관해서는 Xcode 도움말 검색도 사용할 수 있지만 Google을 사용하는 것이 가장 쉽습니다. 기호 중 하나를 검색하고 얽 히지 않은 이름 (예 :)을 찾기 위해 최선을 다한 SCNetworkReachabilityGetFlags
다음 developer.apple.com에서 찾은 첫 번째 문서 링크가 적합한 경우가 많습니다. 일반적으로 멀리 사냥 할 필요는 없습니다. 이 경우 다음 페이지입니다.
https://developer.apple.com/documentation/systemconfiguration/scnetworkreachability-g7d
그런 다음 페이지 상단 SystemConfiguration
에서이 경우 사용할 프레임 워크를 알려줍니다 . 그래서 그것을 프로젝트에 추가하고 다시 컴파일하십시오.
그런 다음 작동 할 때까지 계속하십시오 …
편집 : 나는 시뮬레이터를 사용한 적이 없지만 이것은 장치에서하는 일입니다. 동일하다고 가정합니다 …
답변
때때로 타겟에서 누락 된 소스 파일이 있습니다.
- 누락 된 기호 조사
- 타겟-> 빌드 단계-> 컴파일 소스
- 목록에없는 경우 누락 된 소스 파일 추가
- 행복을 위해 command + b
“누락 된”것으로 보이는 파일을 선택하고 빌드중인 대상에 대한 확인란이 선택되어 있는지 오른쪽 유틸리티 표시 줄에서 확인할 수 있습니다.
답변
다음 방법을 사용하여 해결했습니다 (XCode 4의 경우).
1) 프로젝트 탐색 창에서 프로젝트를 선택하면 오른쪽에 프로젝트 요약이 표시됩니다.
2) 4 번째 탭 빌드 단계 선택
3) 라이브러리 옵션과 바이너리 링크 선택
4) 받고있는 프레임 워크 추가
5) 프레임 워크를 기본 폴더에서 프레임 워크 폴더로 이동합니다.
6) 다시 빌드하면 오류가 사라집니다.
답변
문제는 추가 된 파일에 대한 대상 멤버십이 앱 대상에 누락되어 있다는 것이므로 파일을 선택하고 대상 멤버십 상자에 체크 표시를 추가하십시오.
예를 들어 common.m의 메서드 정의에 오류가 표시되는 경우
답변
동일한 오류에 몇 시간을 보낸 후 이에 대한 솔루션을 추가하려고 생각했습니다.
위의 사람들은 가장 먼저 확인해야 할 프레임 워크 추가를 놓쳤는 지 여부입니다. 위의 Pruthvid에서 제공하는 단계를 참조하십시오.
내 문제는 내가 그것을 삭제 한 후 누락 된 컴파일 클래스였으며 나중에 다시 추가했습니다.
보고 된 오류 클래스에 대해 표시된대로 “컴파일 소스”를 확인하십시오. 작성한 누락 된 클래스를 추가하십시오.
답변
누락 된 프레임 워크를 추가하는 것이 아니라면 실제로 “타겟 / 빌드 단계 / 바이너리와 라이브러리 연결”에 나열되어 있는지 확인 합니다. 앞에서 언급했듯이 일반적으로 프레임 워크가 누락되었음을 나타냅니다.
내 프로젝트에는 두 개의 동일한 프레임 워크가 나열되어 있는데, 그중 하나를 제거했을 때이 오류가 발생했습니다. “Link Binary With Libraries”목록에서도 제거 되었기 때문입니다. 다시 추가했고 문제가 사라졌습니다 (아직 두 개의 프레임 워크가 나열되어 있습니다).
