2016-04-19 4 views
0

Я использую geany (code :: blocks wouldnt запускать мои программы) в качестве компилятора для компиляции простой C++-программы с одним классом. Я на Linux Mint 17 на Dell Vostro 1500. Компиляция прекрасно работает как с .cpp файлов, но файл заголовка дает эту ошибку:Почему компилятор C++, похоже, компилируется в c

gcc -Wall "Morgan.h" (in directory: /home/luke/Documents/Coding/Intro#2) 
Morgan.h:5:1: error: unknown type name ‘class’ 
class Morgan 
^ 
Morgan.h:6:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 
{ 
^ 
Compilation failed. 

Это main.cpp:

#include <iostream> 
#include "Morgan.h" 
using namespace std; 

int main() 
{ 
    Morgan morgObject; 
    morgObject.sayStuff(); 

    return 0; 
} 

Это файл заголовка (Morgan.h):

#ifndef MORGAN_H 
#define MORGAN_H 


class Morgan 
{ 
    public: 
     Morgan(); 
     void sayStuff(); 
    protected: 
    private: 
}; 

#endif // MORGAN_H 

И это класс (Morgan.cpp):

#include <iostream> 
#include "Morgan.h" 
using namespace std; 

Morgan::Morgan() 
{ 
} 

void Morgan::sayStuff(){ 
    cout << "Blah Blah Blah" << endl; 
} 

Я действительно не знаю, что происходит не так, поэтому любая помощь будет оценена. Я копирую и вставляю один и тот же код в компилятор Windows, и он работал нормально, поэтому это может быть просто linux.

также, когда я бегу main.cpp это то, что показывает: "./geany_run_script.sh: 5: ./geany_run_script.sh: ./main: не найден"

+6

Ну, вы используя gcc, который является компилятором C. Используйте g ++. – GManNickG

+1

Кроме того, почему вы компилируете 'Morgan.h' вместо' main.cpp' и 'Morgan.cpp'? –

+0

Если я правильно понимаю, вы используете команду компиляции Geany для компиляции кода. Если это так, то вы можете захотеть изменить команды сборки в Geany и установить их для использования g ++ таким образом, который используется в ответах, данных до сих пор. – Bettorun

ответ

2

Ваша проблема заключается в том, что вы компилируете код на C++ с помощью компилятора C (GCC). Команда, которую вы ищете, - g++. Полная команда, которая будет компилировать ваш код:

g++ -Wall -o run.me main.cpp Morgan.cpp

Если файл включен (В вашем случае Morgan.h файла, вам не нужно явно компилировать его.)

3

Вы не компилировать. h файлов. Попробуйте g++ -Wall main.cpp Morgan.cpp

+0

@amarillo Исправлено. –

Смежные вопросы