为什么我的 C++ 编译器似乎是用 C 编译的
Why does my c++ compiler seem to be compiling in c
我正在使用 geany(code::blocks 不会 运行 我的程序)作为编译器来编译一个简单的 c++ 程序 class。我在 Linux Dell Vostro 1500 上的 Mint 17 上。两个 .cpp 文件的编译工作正常,但头文件给出了这个错误:
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
这是 class (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: 未找到"
您不编译.h 文件。尝试 g++ -Wall main.cpp Morgan.cpp
您的问题是您正在使用 C 编译器 (GCC) 编译 C++ 代码。您要查找的命令是 g++
。编译代码的完整命令是:
g++ -Wall -o run.me main.cpp Morgan.cpp
如果包含文件(在您的情况下是 Morgan.h
文件,您不需要显式编译它。)
我正在使用 geany(code::blocks 不会 运行 我的程序)作为编译器来编译一个简单的 c++ 程序 class。我在 Linux Dell Vostro 1500 上的 Mint 17 上。两个 .cpp 文件的编译工作正常,但头文件给出了这个错误:
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
这是 class (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: 未找到"
您不编译.h 文件。尝试 g++ -Wall main.cpp Morgan.cpp
您的问题是您正在使用 C 编译器 (GCC) 编译 C++ 代码。您要查找的命令是 g++
。编译代码的完整命令是:
g++ -Wall -o run.me main.cpp Morgan.cpp
如果包含文件(在您的情况下是 Morgan.h
文件,您不需要显式编译它。)