这是我第一次制作自己的头文件。我想在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建议是否需要在终端的任何文件或任何命令中进行更改?
谢谢
答案 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 编译器。