2011-09-21 3 views
2

현재 정적 라이브러리와이 라이브러리에 링크 된 3 개의 실행 파일을 만드는 프로젝트를 진행 중입니다. 깨끗한 빌드에서 OSX 10.7.1에서 라이브러리를 만들려고하면 올바르게 빌드됩니다. 그러나 깨끗한 빌드가 아니라면이 오류가 발생합니다. 나는이 오류 다음은 문제없이 컴파일을받은 후 정리 빌드를 할 경우 어떤 빌드 설정을 변경하지 않고StaticLib 작성시의 잘못된 TOC 항목

ld: in ./libframework.a, malformed archive TOC entry for GameApp::~GameApp(), offset 222233108 is beyond end of file 3056 for architecture x86_64 

. 연결 오류가 항상 동일한 항목에 적용되지 않는 것 같습니다. 만약 내가 그 desructructor를 주석 처리한다면 그것은 단지 다른 엔트리를 참조 할 것입니다.

아이디어가 있으십니까?

+0

어떤 사람들은이 문제를 해결을 삭제하여 문제를 해결했습니다 with 1. 메이크 파일에서 병렬 빌드 옵션 해제하기 2. ar 다음 ld 이전에 ranlib 실행하기 (http://code.swtch.com/plan9port/issue/81/devdraw-does-not-build-ko.html의 마지막 메시지 참조) on-os-x-lion-latest) – istepura

답변

1

여기서 오류는 다시 컴파일 할 때 정적 라이브러리의 목차를 업데이트해야한다는 것입니다. 이 문제를 해결하기 위해 -s 플래그를 ar에 추가하거나 라이브러리를 컴파일 한 후 링크하기 전에 ranlib를 실행할 수 있습니다.

+0

OSX 10.7.1에서는 맨 페이지에 기록 된 내용에도 불구하고 -s 플래그가 작동하지 않는 것처럼 보입니다. – Nexus

+0

수정 방법에 대해 자세히 설명해 주시겠습니까? –

0

나는 파일 (/ 사용자/iOS5를/라이브러리/개발자/엑스 코드/DerivedData//빌드/제품/디버그 - iphonesimulator/ .A)