어떤 검색 경로를 말하고 있습니까? 시스템 검색 경로는 자동으로 처리되므로 사용자 정의 라이브러리라고 가정합니다.
두 가지 해결책이 있습니다. 조건부 설정을 사용하거나 유니버설 라이브러리를 사용할 수 있습니다. 나는 보편적 인 도서관을 사랑하게되었지만, 아직 전체 지시 사항을 쓸 시간은 없었습니다. 그들이 작동하는 방법은 시뮬레이터와 장치를위한 정적 라이브러리를 빌드 한 다음 lipo
을 사용하여 함께 붙입니다. 그런 다음 두 플랫폼 모두에 동일한 라이브러리를 사용할 수 있습니다. 매우 유용하기 때문에 이것을위한 전체 지침을 작성해야합니다.
두 가지 접근 방법이 더 있습니다. 먼저 조건부 설정을 사용할 수 있습니다.
LD_FLAGS[sdk=iphonesimulator*] = -lsasl2
단지 시뮬레이터 sasl2 링크 : xcconfig 파일 (파일을 xcconfig 사용하는 이유에 my talk 참조)에서는 다음과 같이 넣어. 필요한 플래그를 설정하십시오. 또 다른 해결책은 변수 치환이다 :
HEADER_SEARCH_PATHS = "$(SRCROOT)/MyPackage/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/include"
이 MyPackage
프로젝트의 하위 디렉토리에 있고 그것이 build
디렉토리에 지어진 것으로 가정합니다. 예를 들어, 해당 변수는 Debug-iphoneos
입니다.
위의 두 가지를 모두 빌드 창에서 수행 할 수도 있지만 심각한 프로젝트의 경우 빌드 창에서 벗어나도록 권장합니다. 변수 대체는 빌드 창에서 동일하게 작동하며 설정을 마우스 오른쪽 단추로 클릭하면 조건부 설정에 액세스 할 수 있습니다.
이것은 목표 지점이 아닙니다. 다른 플랫폼에서 동일한 목표입니다. 대상은 "테스트 응용 프로그램"대 "기본 응용 프로그램"대 "디스크 이미지"와 같은 것입니다. 단일 대상에 대해 플랫폼을 전환하는 좋은 방법은 아닙니다. –
그래, 난 사용자 정의 프레임 워크를 사용하지 않고있다. 표준 sqlite3 라이브러리 외에 표준 프레임 워크를 사용하고 있습니다. 각 플랫폼마다 별도의 대상을 사용해서는 안되면 프레임 워크/lib 경로 문제를 어떻게 수정합니까? 하나의 대상이 있습니다. 시뮬레이터 용으로 빌드하려면 드롭 다운 목록에서 시뮬레이터 3.0을 선택하십시오. 마찬가지로 장치 용 장치 3.0을 선택합니다. – AlvinfromDiaspar