2012-02-23 9 views
6

Estoy tratando de mover el código del proyecto AurioTouch a mi proyecto. Pero tienen muchos errores:Nombre de tipo desconocido 'clase'; ¿Te refieres a 'Clase'? AurioTouch

Unknown type name 'class'; did you mean 'Class'? 

Por ejemplo, en FFTBufferManager.h archivo:

#include <AudioToolbox/AudioToolbox.h> 
#include <libkern/OSAtomic.h> 

#include "SpectrumAnalysis.h" 

class FFTBufferManager 
{ 
public: 
    FFTBufferManager(UInt32 inNumberFrames); 
    ~FFTBufferManager(); 

He intentado cambiar el compilador LLVM GCC 4.2, pero le da una gran cantidad de otros errores:

Expected '=', ',', ';', 'asm' or '__attribute__' before 'FFTBufferManager' 

¿Qué estoy haciendo mal?

+8

es muy probable que haya olvidado un ';' en 'SpectrumAnalysis.h' – KillianDS

+0

Supongo que funciona si elimina los includes? Intenta corregir esos archivos antes de comenzar a corregir este. – Default

+0

SpectrumAnalysis.h es correcto. El proyecto AurioTouch compila y funciona bien. Pero cuando agrego sus archivos a mi proyecto, aparece un montón de errores. – LordPingvin

Respuesta

8

Para mezclar C++ y Objective-C, necesita usar el .mm extension. Sin embargo, si su clase es solo C++ (y solo incluye encabezados C/C++), entonces puede usar la extensión normal .cpp.

.mm
Un archivo de origen con esta extensión puede contener código C++, además de Objective-C y el código C. Esta extensión debe usarse solo si realmente se refiere a las clases o funciones de C++ desde su código Objective-C.

+0

¿Qué pasa con los archivos .h, donde se define la clase C++? a que extensión debería ser cambiado? – peetonn

+0

@peetonn .h está bien ya que no se compilan. También puede usar .hh y .hpp. – Joe

+0

@Joe ¿Puede por favor proporcionar la solución en datil porque tengo el mismo problema – Developer

Cuestiones relacionadas