Я использую 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: не найден"
Ну, вы используя gcc, который является компилятором C. Используйте g ++. – GManNickG
Кроме того, почему вы компилируете 'Morgan.h' вместо' main.cpp' и 'Morgan.cpp'? –
Если я правильно понимаю, вы используете команду компиляции Geany для компиляции кода. Если это так, то вы можете захотеть изменить команды сборки в Geany и установить их для использования g ++ таким образом, который используется в ответах, данных до сих пор. – Bettorun