2016-04-19 8 views
0

geany(code :: blocks would have my programs)をコンパイラとして使用して、単純なC++プログラムをコンパイルします。デルのVostro 1500のコンパイルが.cppのファイルの両方で正常に動作しますが、ヘッダファイルは、このエラーを与える上で、私は、Linuxのミント17日午前:なぜ私の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

さて、あなたはしていますCコンパイラであるgccを使用します。 g ++を使用します。 – GManNickG

+1

また、なぜ 'main.cpp'と' Morgan.cpp'の代わりに 'Morgan.h'をコンパイルしていますか? –

+0

私は正しいことを理解している場合は、Geanyのコンパイルコマンドを使用してコードをコンパイルします。そうであれば、Geanyのビルドコマンドを変更し、これまでの回答で使用されている方法でg ++を使用するように設定することができます。 – Bettorun

答えて

2

あなたの問題は、Cコンパイラ(GCC)でC++コードをコンパイルしていることです。あなたが探しているコマンドはg++です。あなたのコードをコンパイルするでしょう完全なコマンドは次のとおりです。

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

ファイルが含まれている場合(あなたのケースMorgan.hファイルには、明示的にコンパイルする必要はありません。)

3

あなたはコンパイルされません。 hファイル。お試しくださいg++ -Wall main.cpp Morgan.cpp

+0

@amarillo修正済み。 –

関連する問題