在linux中用自己的头文件编译和运行c ++程序

时间:2015-03-06 05:45:35

标签: c++ linux

这是我第一次制作自己的头文件。我想在ubuntu上用C ++编写简单的hello world程序。制作了3个文件如下:

// hello.h文件

#ifndef HELLO_H
#define HELLO_H

//my own code

void hello();

#endif

// hello.cpp file

#include <iostream>
#include "hello.h"

using namespace std;

void hello()
{
    cout << "This line is printed from header.";
}

// main.cpp文件

#include <iostream>
#include "hello.h"

using namespace std;

int main()
{
    cout << "in main" << endl << endl;
    hello();
    return 0;
}

我已经尝试了

g++ -I /home/Desktop/hello/ -c hello.cpp -o hello.o

编译头文件,此命令有效。

然后,在做

的时候
g++ -o main main.cpp

我最终得到以下错误:

/tmp/ccb0DwHP.o: In function `main':
main.cpp:(.text+0x2e): undefined reference to `hello()'
collect2: error: ld returned 1 exit status

plz建议是否需要在终端的任何文件或任何命令中进行更改?

谢谢

3 个答案:

答案 0 :(得分:4)

您未在以下命令中链接到 hello.o

g++ -o main main.cpp

试试这个:

g++ -o main main.cpp hello.o

或者对于这样简单的程序,只需发出以下命令:

g++ -o main main.cpp hello.cpp

为了便于使用,请创建一个makefile,然后运行make:

make

一个简单的makefile:

helloprogram: hello.h hello.cpp main.cpp

    g++ -o helloprogram main.cpp hello.cpp

clean:

    rm helloprogram

答案 1 :(得分:0)

将hello.h放入Path2Hello;

g++ -o main -I Path2Hello main.cpp hello.cpp

ps:-I选项,用于指定备用包含目录(用于头文件)。

答案 2 :(得分:-2)

要编译和运行 C 语言程序,您需要一个 C 编译器。要在您的计算机/笔记本电脑中设置 C 语言编译器,有两种方法:

下载完整的 IDE,如 Turbo C 或 Microsoft Visual C++,它带有 C 语言编译器。 或者,您可以使用任何文本编辑器编辑程序文件并单独下载 C 编译器。