2011-09-05 5 views
2

내가 대답은 간단하다 확신하지만 다음과 같은 문제에 직면하고있다 ...가져 오기, 사용하고 IOS 목표-C 프로젝트

나는이 C를 사용하려면 ++ 헤더 파일에 하나의 C++ 헤더 파일을 컴파일 ios objective-c xcode 프로젝트 내에 CAAudioUnitOutputCapturer.h (.h 파일 만 있음).

누군가가 컴파일 오류를 제거하고 Objective-C 컨텍스트에서 사용하는 방법을 보여주는 방법을 알려줄 수 있습니까? 컴파일러는 이러한 오류의 원인이되는 순수 목적 C, 같은 파일을 만들려고하는 순간

CAAudioUnitOutputCapturer.h:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CAAudioUnitOutputCapturer' 
+0

무엇이 오류입니까? 오류가 무엇인지 알려주지 않으면 오류를 피하는 방법을 어떻게 알 수 있습니까? –

+0

편집 오류로 편집 됨 – lefakir

답변

4

: 편집

, 난이 오류가 발생했습니다. 컴파일 할 파일의 이름을 myFile.mm (이름은 mm입니다)으로 바꿉니다. 이렇게하면 컴파일러가이를 헤더에 포함 된 Objective C++ 코드로 간주하게됩니다.

1

CAAudioUnitOutputCapturer 클래스를 사용하는 모든 파일은 Objective-C 대신 Objective-C++이어야합니다. .m 대신 .mm 확장자를 사용하면됩니다.

.mm 파일에서 Objective-C 클래스와 C++ 클래스를 혼합 할 수 있습니다.

Here은 Objective-C++에 대한 정보입니다.

1

당신이 CAAudioUnitOutputCapturer.h가 목적 C++ 파일 (기본 확장 .mm), 또는 C++ 파일 (확장자 .cpp 또는 .cc) 여야합니다 사용하는 파일입니다. Objective C (확장자 .m) 파일에서이 파일을 사용하려고하면 컴파일러에서 C++이 아닌 Objective C를 기대하기 때문에 오류가 발생합니다.

CAAudioUnitOutputCapturer 클래스의 (컴파일 된) 코드가 포함 된 개체 파일이나 라이브러리 파일이 있어야합니다. 그렇지 않으면 .h 파일이 쓸모가 없습니다.

관련 문제