在我的目录,我有:
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()'
什么问题?
在我的目录,我有:
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()'
什么问题?
你需要编译和链接树源代码,以及:
$ g++ -c -o tree.o tree.cpp
$ g++ -o test main.cpp tree.o
运行应用程序:
$ ./test
您可能希望创建自己应该是一个make文件。 make文件会自动编译多个文件程序。
例如,您可以创建一个包含billz建议行的文件“makefile”。
all:
g++ -c -o tree.o tree.cpp
g++ -o test main.cpp tree.o
然后,从生成文件的文件夹中的终端运行make
将执行all
部分。
有关生成文件的更多信息,请参阅http://www.cs.bu.edu/teaching/cpp/writing-makefiles/
我没有测试上面的代码,它可能是一些调整是必要的。
但我建议有一个更好的'makefile',与真正的依赖和*作*变量。 –
当然!以上仅作为例子给出。该链接提供了大量关于如何创建更好的生成文件的信息。 – Sam
无关问题的方法:尽量避免'树* T =新树()',这是Java的杂交,并没有必要,也没有效率也没有内存 - 安全。只是让它成为'树'; – leftaroundabout
哦,非常感谢。 – Sara