-1

可能重复:
未定义的引用

在我的目录中,我有:

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()'

有什么问题?

4

3 回答 3

7

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

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

运行您的应用程序:

$ ./test
于 2012-12-30T00:31:35.207 回答
2

您可能想为此创建一个 make 文件。一个 make 文件将自动编译多个文件程序。

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

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

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

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

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

于 2012-12-30T00:46:06.883 回答
0

放头球后卫,像这样

#ifndef NAME_H
#define NAME_H

//your codes

#endif
于 2012-12-30T01:47:04.747 回答