iPhone 기기와 iPhoneSimulator 모두를 올바르게 관리 할 수있었습니다.
이벤트 Xcode5.0.1은 명령 줄에 llvm을 지원하지 않으므로 '코디용 명령 줄 도구'를 다운로드 할 수 있습니다. 설치하면 llvm을 사용할 수 있습니다. 따라서 'iPhone'과 'iPhoneSimulator'(iPhone-clang-libC++ 및 iPhone-clang-libC++ 구성 사용 불필요)의 빌드 구성을 사용할 수 있습니다.
'nm'도구가 문제를 표시합니다. 바르게. iPhoneSimulator 용으로 건물을 만들 때 뭔가 잘못되었습니다.
그래서, 저는 여러분에게 빠른 픽스를 보여 드리겠습니다.
1) 다운로드 한 'poco-1.4'로 이동하십시오.6P2 모두 '디렉토리
2) 개방 빌드/설정/아이폰 파일
vim build/config/iPhone
3)이이이
CC = /usr/bin/llvm-gcc
CXX = /usr/bin/llvm-g++
에 두 줄
CC = $(shell ls $(TOOL_PREFIX)/llvm-gcc-$(GCC_VER)* | tail -1)
CXX = $(shell ls $(TOOL_PREFIX)/llvm-g++-$(GCC_VER)* | tail -1)
다음 변경 원본 스크립트가 잘못된 위치에서 'llvm-gxx'를 호출하려고하기 때문입니다. 'Maverick 용 CommandLine Tools'는 '/ usr/bin'디렉토리에 'llvm-gxx'에 대한 심볼릭 링크를 생성합니다.
죄송합니다. 아름다운 스크립트는 아니지만 고정 배선 된 것입니다.
4) 'CXXFLAGS'를 찾고 'openssl'include & lib 디렉토리를 지정하십시오. (cource 중 당신은 사전에 내장되어 있어야합니다.)
CXXFLAGS = $(OSFLAGS) -Wall -Wno-sign-compare -L(Your openssl source directory)/lib/iOS -I(Your openssl source directory)/include
5) 이제 해당 구성 파일을 사용하여 완료됩니다. 저장하고 닫습니다.
6) 다음, 개방 빌드/설정/iPhoneSimulator 파일
vim build/config/iPhoneSimulator
7
)이 'OSFLAGS'을 찾아이
# OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN)
8) 완료처럼 주석 처리합니다. 그것을 저장하고 그것을 닫으십시오.
9) 이제 'iPhone'장치 용 라이브러리를 빌드하기위한 다음 명령을 실행하십시오.
./configure --config=iPhone -static --no-tests --no-samples --omit=Data/ODBC,Data/MySQL
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=armv7 -s -j4
다른 아키텍처 용 라이브러리를 빌드해야하는 경우 추가하십시오.
10) 완료. 이제 'iPhoneSimulator'가
make clean
./configure --config=iPhoneSimulator -static --no-tests --no-samples --omit=Data/ODBC,Data/MySQL
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=i686 -s -j4
위, 나는 그 잘 컴파일러 인식하지 오전 ... 설정 파일 내 문제에 대한 솔루션입니다 구축하도록 변경 마지막 행은 & 링커가 너무 거즈에 대한 라이브러리를 구축하는 명령을 다음과 화재 원본 스크립트의 문제점이 무엇인지 잘 모르겠습니다.
11) 완료. 마지막으로, 이와 같이 2의 라이브러리 내용을 비교하십시오.
nm lib/iPhoneOS/armv7/libPocoFoundation.a | grep digestToHex
nm lib/iPhoneSimulator/i686/libPocoFoundation.a | grep digestToHex
당신의 서명을 볼 수 컴파일 된 C++ 함수 'digestToHex'동일한 예를 들면 다음과 같습니다 ..
[email protected] ~/Downloads/poco-1.4.6p2-all $ nm lib/iPhoneOS/armv7/libPocoFoundation.a | grep digestToHex [ruby-1.9.3-p125]
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
0000001c T __ZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEE
00000280 S __ZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEE.eh
00000228 s __ZZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEEE6digits
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
[email protected] ~/Downloads/poco-1.4.6p2-all $ nm lib/iPhoneSimulator/i686/libPocoFoundation.a | grep digestToHex [ruby-1.9.3-p125]
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
00000050 T __ZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEE
00000268 S __ZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEE.eh
00000218 s __ZZN4Poco12DigestEngine11digestToHexERKSt6vectorIhSaIhEEE6digits
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: no name list
[email protected] ~/Downloads/poco-1.4.6p2-all $
12
)는 '지방 도서관'을해야하는 경우 다음에서 '사러가'명령을 호출 귀하의 터미널. 예를 들어, 은 모든 * .a 파일에 대해 다음과 같은 명령을 반복적으로 실행하는 간단한 쉘 스크립트를 만들 수 있습니다.
lipo -create -output "${UNIVERSAL_DIR}/${FILE1}" "${SIMULATOR_DIR}/${FILE1}" "${ARMV7_DIR}/${FILE1}"
그게 전부입니다.