c ++在linux中编译并运行

时间:2012-12-30 00:29:07

标签: c++ linux pointers g++

  

可能重复:
  Undefined reference to

在我的目录中,我有:

main.cpp
tree.cpp
tree.h

我在main.cpp中包含了tree.h

#include "tree.h"

然后在我的主要功能中写下

tree* t=new tree()

编译我会做

g++ main.cpp

但我有错误

undefined reference to `tree::tree()'

问题是什么?

3 个答案:

答案 0 :(得分:7)

您还需要编译和链接Tree源代码:

$ g++ -c -o tree.o tree.cpp
$ g++ -o test main.cpp tree.o

运行你的应用程序:

$ ./test

答案 1 :(得分:2)

你可能想为自己创建一个make文件。 make文件可以自动编译多个文件程序。

例如,您可以创建一个包含billz建议行的文件“makefile”。

all:
    g++ -c -o tree.o tree.cpp
    g++ -o test main.cpp tree.o

然后,从makefile文件夹中的终端运行make将执行all部分。

有关makefile的更多信息,请参阅http://www.cs.bu.edu/teaching/cpp/writing-makefiles/

我没有测试过上面的代码,可能需要进行一些调整。

答案 2 :(得分:0)

把头卫,像这样

#ifndef NAME_H
#define NAME_H

//your codes

#endif