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

compile and run c++ program with own header files in linux

这是我第一次制作自己的头文件。我正在尝试在 Ubuntu 上用 C++ 编写一个简单的 Hello World 程序。制作了3个文件如下:

//hello.h 文件

#ifndef HELLO_H
#define HELLO_H

//my own code

void hello();

#endif

//hello.cpp 文件

#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

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

谢谢

你不要在下面的命令中 link 到 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

将hello.h放入Path2Hello;

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

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

要编译和运行 C 语言程序,您需要一个C 编译器。要在 Computer/laptop 中设置 C 语言编译器,有两种方法:

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