Compiler construction 编译.cc文件?

Compiler construction 编译.cc文件?,compiler-construction,Compiler Construction,伙计们,我有一个奇怪的问题,它一直运作良好,但突然搞砸了 问题就在这里。我有test.h、test.cc和mainP.cc 在mainP.cc中: #ifndef test_H #include "test.h" #endif 在测试h中: #ifndef test_H #define test_H 在test.cc中: #ifndef test_H #include "test.h" #endif 现在当我说测试姿态;它给了我对test::test()的未定义引用; 我检查了我的def。

伙计们,我有一个奇怪的问题,它一直运作良好,但突然搞砸了 问题就在这里。我有test.h、test.cc和mainP.cc

在mainP.cc中:

#ifndef test_H
#include "test.h"
#endif
在测试h中:

#ifndef test_H
#define test_H
在test.cc中:

#ifndef test_H
#include "test.h"
#endif
现在当我说测试姿态;它给了我对test::test()的未定义引用;
我检查了我的def。施工。这是公开的。我觉得一切都很好。我不确定我错了什么?我使用g++来编译它。

从目前为止的稀疏信息来看,您似乎没有正确地将文件链接在一起,并且您试图在没有将test.cc链接到main.cc的情况下构建main.cc,因此它无法找到函数的定义。检查您的命令行

由于注释中指出的原因(不要在
#include
周围设置防护,只在.h文件本身中设置,但我认为它们不是问题的原因)


这似乎是ISNOT test.h的一个副本,缺少一个
#endif
?在任何情况下,从.cc文件中删除
#ifdef
,include-guard应该只在标题中。不要在
#include“test.h”的文件中使用include-guard
-只有
test.h
中的include-guards本身。尽管我怀疑这与您的问题有关。我认为您没有提供足够的信息,任何人都无法帮助解决您的问题。谢谢大家。出现了链接问题。它已修复,非常感谢