업데이트 : 난 그냥 당신이 LD_TRACE_ARCHIVES 및 LD_TRACE_DYLIBS 환경 변수를 설정 한 후 명령 줄에서 직접 링커 명령을 실행하여 더 많은 정보를 얻을 수 있다는 것을 깨달았링크 오류 iPhoneSimulator을 대상으로
.
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2
-arch i386
-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk
-L<path_to_project>/build/Debug-iphonesimulator
-L<path_to_static_libs>
-F<path_to_project>/build/Debug-iphonesimulator
-filelist <path_to_project>/build/<project_name>.build/Debug-iphonesimulator/<project_name>.build/Objects-normal/i386/<project_name>.LinkFileList
-mmacosx-version-min=10.6
--verbose
-lproject_lib
-Xlinker -objc_abi_version
-Xlinker 2
-framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore
-o <path_to_project>/build/Debug-iphonesimulator/<project_name>.app/<project_name>
Using built-in specs.
Target: i686-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5664)
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin10/4.2.1/collect2
-dynamic -arch i386 -macosx_version_min 10.6
-syslibroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk
-weak_reference_mismatches non-weak
-o <path_to_project>/build/Debug-iphonesimulator/<project_name>.app/<project_name>
-lcrt1.10.6.o
-L<path_to_project>/build/Debug-iphonesimulator
-L<path_to_static_libs>
-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1/../../..
-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../..
-filelist <path_to_project>/build/<project_name>.build/Debug-iphonesimulator/<project_name>.build/Objects-normal/i386/<project_name>.LinkFileList
-lproject_lib
-objc_abi_version 2
-framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore
-lstdc++ -lSystem -lgcc -lSystem
-F<path_to_project>/build/Debug-iphonesimulator
[Logging for XBS] Used dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/Foundation.framework/Foundation
[Logging for XBS] Used dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/UIKit.framework/UIKit
[Logging for XBS] Used dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/OpenGLES.framework/OpenGLES
[Logging for XBS] Used dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore
[Logging for XBS] Used dynamic library: /Developer/usr/lib/gcc/i686-apple-darwin10/4.2.1/libstdc++.dylib
[Logging for XBS] Used dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/libSystem.dylib
[Logging for XBS] Used indirect dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/libobjc.A.dylib
[Logging for XBS] Used indirect dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
[Logging for XBS] Used indirect dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/system/libSystem.override.dylib
[Logging for XBS] Used indirect dynamic library: /usr/lib/libSystem.B.dylib
[Logging for XBS] Used indirect dynamic library: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/system/libmathCommon.A.dylib
[Logging for XBS] Used static archive: <path_to_static_libs>/libproject_lib.a
Undefined symbols:
".objc_class_name_NSBundle", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file1.o)
".objc_class_name_UIWindow", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file2.o)
".objc_class_name_UIView", referenced from:
.objc_class_name_file3 in libproject_lib.a(file3.o)
".objc_class_name_CAEAGLLayer", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file3.o)
".objc_class_name_EAGLContext", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file2.o)
[email protected][email protected][email protected] in libproject_lib.a(file3.o)
".objc_class_name_NSDictionary", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file3.o)
".objc_class_name_NSNumber", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file3.o)
".objc_class_name_UIScreen", referenced from:
[email protected][email protected][email protected] in libproject_lib.a(file2.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
그래서 질문은 : 다음 .objc_class_name_xxx 참조도 collect2 불구하고 발견되지 않는 이유는 여기에 (내가> 문자열 <short-text
으로 매우 긴 경로와 이름을 대체하지만) 내가 실행 한 후 출력하고있는 무슨이다 iPhoneSimulator의 올바른 프레임 워크 위치를 조사하고 있습니까? 요점은이 모든 것이 올바르게 작동한다는 것입니다. iPhone 장치 자체를 타겟팅 할 때 링크 오류가 없습니다.
원본 메시지 :
I가 컴파일 엑스 코드에서 잘 연결하는 장치 자체 (아이 패드)를 대상으로 할 때,하지만 응용 프로그램 나는 오류가 표시 얻을 시뮬레이터를 대상으로 시도 할 때 내가 '프레임 워크의 상징 사용중인 m이 없습니다.
나는이 관련된 일부 오래된 스레드를 본 적이 있지만 자신의 제안이 작동하지 않습니다 1) 나는 그러나) 로컬 2) 내가 명시 적 프레임 워크 검색 경로 3이없는 iPhoneOS SDK 프레임 워크를 복사하지 않았다 , 나는 명시적인 라이브러리 검색 경로를 가지고 있는데, 하나는 시뮬레이터 용이고 다른 하나는 장치 용이다. 4) 명시 적 프레임 워크 검색 경로를 만들려고했는데 하나는 시뮬레이터 용이고 하나는 장치 용이지만 생성 된 gcc 명령 줄에는 시뮬레이터에 대한 올바른 -syslib 및 -F 옵션이 있지만 어느 것도 작동하지 않습니다.
나는 꽤 오랫동안 여기에 갇혀있었습니다. 어떤 일이 벌어지고 있는지에 대한 더 깊은 통찰력을 가진 사람 있습니까? 난 그냥 4 기본 프레임 워크, 재단, UIKit, QuartzCore, 그리고 OpenGLES에 대해 연결 해요.
감사합니다, -Eric
나는 마지막으로이 알아 낸
omfg 나는이 동일한 질문을 반복해서 물어왔다. 답변을 공유해 주셔서 감사합니다. – cheshirekow
나도, 건배! – Colen