2013-08-22 2 views
0

Objective-C 응용 프로그램에서 iZotope (오디오 효과)에 대한 지원을 추가하려고합니다.Objective-C 프로젝트에서 .a C++ 라이브러리에 연결

통합 과정에서 iZotope C++ 라이브러리를 내 Xcode 프로젝트에 연결하는 것과 관련된 여러 가지 문제가 발생했습니다. 나는보다 아무 것도 이루어지지 않은이 시점 기준으로

: 라이브러리가 (이 .a) TARGETS에서> MyTargetName> 페이즈 빌드 추가

  • 을> 라이브러리와 링크 바이너리
  • 은의 헤더 파일을 추가합니다 라이브러리> 프로젝트> MyProjectName> 빌드 설정> 검색 경로> 헤더 검색 경로

나는 코드를 전혀 작성하지 않았습니다. 내 목표는 지금 라이브러리를 추가하기 전과 마찬가지로 프로젝트를 컴파일하는 것입니다.

다음은 컴파일러 출력 (https://gist.github.com/dornad/6310107)에 대한 링크입니다. 나에게 그것은 Xcode가 C++ 표준 라이브러리에 대해 전혀 모른다는 것, 그래서 그것은 장관으로 실패한다.

아이디어가 있으십니까?

+0

새 라이브러리의 경우 라이브러리 검색 경로도 추가해야합니다. 이 속성은 머리글 검색 경로 옆에 있습니다. 컴파일러의 관점에서 파일 이름을 지정하려면 "-l"플래그가 필요합니다. 링크 바이너리에 라이브러리를 넣으면 컴파일러에게 라이브러리를 검색 할 위치를 알려주는 "-L"이 필요합니다 따라서 Library Search Path 속성. – Kuoni

+0

나는 내가 따라하고 있는지 잘 모르겠다. 따라서 내 파일이 libCoreFXSim.a 인 경우 라이브러리 검색 경로 아래에 -LlibCoreFXSim을 추가해야합니다. – dornad

+0

죄송합니다. XCodeProject 옆에 CoreFX라는 폴더가 있고 "libCoreFXSim.a"라는 라이브러리가 있다면 ** 라이브러리 검색 경로 **에 "$ (SRCROOT)/CoreFX"를 추가하십시오. SRCROOT 및 기타 변수는 [here] (https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html)에 설명되어 있습니다. 그렇게하면 Xcode는 해당 폴더에서 라이브러리를 찾을 때 검색을 생각할 것입니다. – Kuoni

답변

0

표준 C++ 라이브러리를 찾을 수 없습니다. 아마도 프로젝트 파일의 확장자는 .mm 대신 .m이며 이는 C++ 컴파일에 필요합니다.

+0

C++ 라이브러리에서 Objective-C wrapper를 작성하는 방법에 대해 읽었습니다. 나는 여기에 설명 된대로 .mm으로 전환하는 대신 파일을 (.m) 그대로 유지하고 싶습니다. http://philjordan.eu/article/mixing-objective-c-c++and-objective-c++ – dornad

+0

아니면 하나의 프로젝트에서 .mm과 .m을 혼합해서 사용할 수 있습니까? 즉 C++ 라이브러리 주위의 래퍼는 Objective-C++ 일 것이며 나머지 프로젝트는 그대로 남아있을 것입니다. – dornad

+0

네, 그게 제가 Cocos2d-x 프로젝트에서하고있는 일입니다. 나는 대부분 순수한 Obj-C 코드가 필요할 때 주로 CPP 파일, 일부 .MM이 브리지 (Obj-C와 C++을 혼합) 및 몇 가지 .M 파일로 작동합니다. .M은 Objective-C 컴파일러로 컴파일되지만 .MM은 Objective-C++ 컴파일러로 컴파일됩니다. Objective-C 컴파일러는 Standard C++ 라이브러리에 대해 알지 못합니다. – Kuoni

관련 문제