2012-01-10 2 views
1

기기에서 실행되는 iPhone 앱이 있습니다. 이제 시뮬레이터에서 실행해야합니다.Xcode iOS Simulator에서 실행되도록 라이브러리를 구성하는 방법은 무엇입니까?

오픈 소스 프로젝트 (http://site.icu-project.org/)를 사용합니다.이 프로젝트는 명령 행에서 빌드하여 arm 호환 .a 파일을 만듭니다. 이것들을 내 iPhone 프로젝트와 연결할 수 있으며 장치에서 실행됩니다. 내가 예상대로

내가 시뮬레이터에 대상을 전환하면

는 빌드가 실패

LD : 경고 : libicudata.a에 파일이 링크되는 아키텍처 아닌 지원되지 않는 파일 형식 지어진 나는 지역 사용 (x86_64에) 컴파일 libs와 사용하는 경우 (I386)

는, 나는 당황 할 수있어 한 같은 오류를 얻을. 시뮬레이터의 세 번째 아키텍처를 지정해야합니까? 어느 것? 구성을 어떻게 설정합니까? 나는 이제 볼 기욤 제안으로

(그리고 Connect iPhone App to PostgreSQL Using Libpq 확정) : 추가 How to build ICU so I can use it in an iPhone app?

편집 :

참고로

이 내가 두 개의 서로 다른 목표를 위해 ICU 프로젝트를 구성하는 방법입니다 에뮬레이터에는 32 비트 빌드가 필요합니다. 마지막 부분입니다 : 어떻게 구성을 설정합니까?

도서관에는 내가 알고있는 한 표준 configure 스크립트가 있지만 지금도 꽤 새로운 편입니다.

내가 여기까지 왔지만는 i686에 대한 참조는 분명히 잘못된 :

편집은 추가 할 수 있습니다.

"호스트"및 "대상"옵션이 필요한 경우 i386이 교차 컴파일로 간주되는지 여부는 알 수 없습니다.

ICU_PATH=/Users/eric.grunin/Documents/dev/icu2 

DEVROOT=/Developer/Platforms/iPhoneSimulator.platform/Developer 
SDKROOT=$DEVROOT/SDKs/iPhoneSimulator4.3.sdk 
SYSROOT=$SDKROOT 

ICU_FLAGS="-I$ICU_PATH/source/common/ -I$ICU_PATH/source/tools/tzcode/ " 

export CXXPP= 
export CXXPPFLAGS= 
export CPPFLAGS="-I$SDKROOT/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I$SDKROOT/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I$SDKROOT/usr/include/ -I$SDKROOT/usr/include/c++/4.2.1/armv7-apple-darwin10/ -I./include/ -miphoneos-version-min=2.2 $ICU_FLAGS" 

export CFLAGS="$CPPFLAGS -pipe -no-cpp-precomp -isysroot $SDKROOT" 
export CPP="$DEVROOT/usr/bin/cpp $CPPFLAGS" 
export CXXFLAGS="$CFLAGS" 

export CC="$DEVROOT/usr/llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-gcc-4.2" 
export CXX="$DEVROOT/usr/llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-g++-4.2" 
export LDFLAGS="-L$SDKROOT/usr/lib/ -isysroot $SDKROOT -Wl,-dead_strip -miphoneos-version-min=2.0" 

cd $ICU_PATH 
mkdir simbuild 
cd simbuild 

$ICU_PATH/source/configure --enable-static --disable-shared 
gnumake 

답변

관련 문제