在一个大项目上工作我遇到了这个问题:链接器不时拒绝“看到”类的实现,在找到特定类(Board)的方法时抛出“未找到符号”异常
一些'技术'细节:
我在.cpp文件上使用#pragma一次。我知道最终他们没有(或者不应该)做任何事情,因为.cpp文件没有被包含在其他文件中,但是我养成了在我创建的每个代码文件的顶部写这个的坏习惯。
该类实现其.h文件中声明的所有方法
该类包含项目的其他标题,但许多文件中包含相同的标题,但此特定类只是编译问题的类。
在我编写了一个我的类包含和使用的模板类之后不久就出现了问题,但是,如上所述,其他类没有问题(所以我无法判断模板是否是与问题没有真正关系。)
最奇怪的部分是:
如果您需要更多信息,例如班级的.h和.cpp文件,我会尽快写下来。
谢谢你的时间!
编辑:
更多信息:
当问题首次出现时,我试图尽可能多地评论该类的方法和字段,试图找出问题所在。有时,删除类和模板之间的链接导致良好的编译,但后来它并不重要。在我的项目的不同部分(文件/名称空间/等)中添加类的实例也没有任何区别。
Visual Studio安装在C:\上,项目在D:\上,两个分区都是NTFS。
这是我唯一遇到问题的项目,我已经在问题开始之前和之后成功地编写并运行了许多其他项目,并且具有相同的编程风格。
我尝试重建整个项目并在出现问题时手动清理.obj文件,但没有任何区别。
答案 0 :(得分:0)
此链接http://www.cplusplus.com/forum/beginner/7877/为不同风格的内幕警卫提供了有趣的讨论 这表明#pragma一旦失败的情况,可能会对你有帮助。
对于便携式代码,我的收费是避免#pragma一次。