2013-04-06 3 views
1

코드가 say/repos1/clib에있는 C 라이브러리가 있습니다. 필자는 iOS 프로젝트에 복사 한 clib.a (시뮬레이터 용 디버그 빌드 포함)를 만들기 위해 최신 iOS SDK를 사용하여 명령 줄에서/repos2/proj를 빌드합니다.Xcode - 프로젝트 외부에 빌드 된 디버그 라이브러리

저는이 설정을 몇 년 동안 사용해 왔습니다. 오래된 C 라이브러리는 때로는 디버깅이 필요할 수 있으며, Xcode가 설치를 수행하지 않고도 프로젝트 외부의 라이브러리 코드 (repos1 내부)에 들어 갔음을 기쁘게 생각합니다. 하지만 Xcode 버전을 사용하기 전까지이 작업이 진행되었습니다. 나는 그들이 언제 gcc에서 llvm으로 바뀌 었는지 정확하게 모르겠다. - C 코드를 디버깅 할 필요가 거의 없었으므로 iOS 프로젝트 (최소한 C 파일 이름 & 줄 번호 포함)에서 C 라이브러리를 디버깅하려고 할 때만 시간이 흐려질 수밖에 없습니다. 내가 그것을 디버깅 할 필요가있는 몇 번은 매우 불편하다. (나는 C 코드를 포함하는 임시 프로젝트를 만든다.)

그래서 이전에 효과가 있었던 이유는 무엇입니까? 어디를 봐야합니까? 그것은 내가 C 라이브러리를 구축하는 방법 일 수 있습니다. 아마도 lccm에 동등한 권한이없는 gcc에 플래그가 있습니다 (관련이 있다면 이전 빌드 명령을 찾고 게시 할 수 있습니다)? Xcode의 문제이며 소스를 찾을 위치를 알려주는 방법이 있습니까?

감사합니다.

편집 : C 라이브러리를 소스 또는 Xcode의 하위 프로젝트로 추가 할 수 있습니다. 범위를 벗어난 이유 때문에이 특정 프로젝트에 도움이되지 않습니다. 이전 Xcode 버전에 익숙해 진 것처럼 작동합니까? 그렇지 않은 경우 이유를 아는 것이 여전히 재미있을 것입니다.

답변

0

권장 접근법은 iOS 용 라이브러리 프로젝트 (템플릿이 있음) 인 Xcode에서 라이브러리 프로젝트를 생성 한 다음 해당 프로젝트를 앱에 추가하도록 빌드하면 lib가 종속성이고 연결됩니다. 웹에서이 작업을 수행하는 방법에 대한 자습서가 많이 있습니다.

그럼 iOS가 진화하고 새로운 아키텍처 (armv7s)가 도착하면 두 프로젝트를 모두 업데이트하면됩니다.

+0

라이브러리가 프로젝트에 정상적으로 추가되지 않는 데는 좋은 이유가 있습니다 (1 년에 한 번 정도만 디버그하면되는 것처럼 임시 프로젝트를 만들어야합니다). 그래서이 프로젝트의 세부 사항을 위해 이전에 작동했던 방식이 매우 편리했습니다. 그리고 제가 다시 얻을 수 있는지 알고 싶습니다. – Ecuador

0

나는 같은 문제로 어려움을 겪고있었습니다.

라이브러리/응용 프로그램 프로젝트에서 심볼 리핑 및 응용 프로그램 프로젝트와 관련된 모든 옵션을 라이브러리 프로젝트와 동일한 truecrypt 드라이브로 리셋하려고 시도했지만 도움이되지 않았습니다.

제 경우에는 앱 프로젝트 문제였습니다. 동일한 라이브러리가 소스 코드가있는 다른 앱 프로젝트에서 디버깅 될 수 있으므로 실마리가되었습니다.

나는 앱 프로젝트에서 동일한 라이브러리의 버전이 둘 이상이었고 대상 멤버십 만 설정하여 사용할 라이브러리를 선택했습니다. 그게 내 애플 리케이션 프로젝트에 어떻게 든 영향을 미칠지 모르겠다. 그럼에도 불구하고 모든 라이브러리를 삭제하고 앱 프로젝트에 다시 복사 한 후 소스 코드에 액세스하여 라이브러리를 디버그 할 수있었습니다.

관련 문제