빌드 오류 시 라이브러리 충돌로 인해 duplicate symbol 오류가 발생 할 수 있다.
원인은 Other Linker Flags에 -all_load 속성으로 인해 양쪽의 라이브러리에서 동시에 로드 했기 때문이다.
많은 내용이 -all_load -> _force_load로 바꾸면 된다고 하지만 만약 그럴 수 없는 경우 아래의 방법을 사용하자.
ex)
libTest.a와 libTest_1.a 라이브러리에 같은 헤더를 참조 하고 있어서 오류가 발생.
libTest.a에 있는 심볼 중 xml관련 심볼을 제거
// 라이브러리 폴더로 이동
lipo -info libTest.a
lipo -thin armv7 libTest.a -output libTest-armv7.a
ar -t libTest-armv7.a
mkdir libTest-armv7
cd libTest-armv7
ar -x ../libTest-armv7.a
rm xml*.o
libtool -static -o ../libTest-armv7-edit.a *.o
cd ..
lipo -thin i386 libTest.a -output libTest-i386.a
ar -t libTest-i386.a
mkdir libTest-i386
cd libTest-i386
ar -x ../libTest-i386.a
rm xml*.o
libtool -static -o ../libTest-i386-edit.a *.o
cd ..
lipo -create libTest-armv7-edit.a libTest-i386-edit.a -output libTest-edit.a
참고사이트)
'Programming > iOS' 카테고리의 다른 글
How To Use NSOperations and NSOperationQueues (0) | 2014.11.17 |
---|---|
Jenkins 설명 자료 (0) | 2014.11.13 |
phoneGap 설치 방법 (0) | 2014.07.11 |
Push 기능 테스트 앱 (0) | 2014.05.31 |
NSString 인코딩 / 디코딩 처리 (0) | 2014.04.30 |