cpp의 objective-c 헤더를 포함 할 수 있습니까? cpp .h 파일에서 "cocos2d.h"를 # 포함하려고하면 @ 및 @에 대해 불평하는 많은 오류가 표시되기 때문입니다.C++ 파일의 objective-c 헤더 포함
C++ 파일에 obj-c 헤더가 포함될 수 있습니까?
cpp의 objective-c 헤더를 포함 할 수 있습니까? cpp .h 파일에서 "cocos2d.h"를 # 포함하려고하면 @ 및 @에 대해 불평하는 많은 오류가 표시되기 때문입니다.C++ 파일의 objective-c 헤더 포함
C++ 파일에 obj-c 헤더가 포함될 수 있습니까?
Objective-C++ (예 : 파일 확장자를 .mm
으로 변경)를 사용하여 언어를 혼합해야 할 수 있지만 일반 C++ 소스는 작동하지 않습니다.
.m
파일은 단지 C++ 소스가.mm
혼합 된 목표 - C++ 소스를 할 수 있도록 목표 - C 소스를.cpp
파일을 허용 - 즉, 목표 - C와 C++ : 는 명확하게하려면 몇 가지 제한이 있습니다대신 두 개의 세계를 분리하여 보관해야하는 경우 래퍼 클래스 C++에서 Objective-C 세부 사항을 숨기고 그 반대도 마찬가지입니다.
혼합 objc/C++로 컴파일 할 때 가능합니다. Cocoa 응용 프로그램은 양방향으로 혼합 된 언어로 작성할 수 있습니다. C++ 내부에서 obj-c 클래스를 사용하거나 obj-c 객체에서 C++ 클래스를 사용할 수 있습니다.
당신의 경우에는 obj-c 코드가 허용되지 않는 순수한 C++ 응용 프로그램을 컴파일한다고 가정합니다.
아니요. iphone 용으로 개발 중이며 cpp 헤더 파일은 .mm 파일에서 참조됩니다. – sharvey
C++는 Objective-C가 무엇인지 전혀 모릅니다. 따라서 .cpp에 Objective-C .h를 포함시키는 것은 아무런 의미가 없습니다.
다른 점은 .m (Objective-C) 대신 .mm 파일 확장명 (Objective-C++)을 사용하는 것이 좋습니다.
총체적 일 것입니다.하지만 실제로 .cpp에 Objective-C가 포함 된 헤더를 포함시키려는 경우 Objective-C를'#ifdef __OBJC__' ...'#endif '에 포장하여 파싱되지 않도록하십시오. –
파일을 포함하는 것은 한 파일에서 다른 파일로 코드를 복사하여 붙여 넣는 것과 같습니다. 나는 왜 그들이 다른 언어이기 때문에 이것이 효과가있을 것이라고 생각하는지 모르겠습니다. 질문해야 할 질문은 "어떻게 C++ 코드를 객관적인 C 코드와 인터페이스 할 수 있는가"입니다. – Cogwheel
.mm 파일을 사용할 때 Obj-c는 cpp를 포함하여 잘 작동하므로 반전이 가능하다고 생각했습니다. – sharvey
예,하지만 반대쪽에는 주로 C++를 사용하는 .mm 파일에 ObjC가 포함됩니다. –