【发布时间】:2013-04-06 19:37:05
【问题描述】:
我正在尝试使用 SFML 库进行 C++ 开发。我正在学习教程 (http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-Part-7.aspx),并使用 Visual Studio 2010。
我一直遇到的关于未解决的外部问题的问题。我真的在为此苦苦挣扎,因为与我遇到的大多数错误不同,它似乎 a) 与代码没有任何关系,并且 b) 行为不一致。与其给你们一个具体的例子并寻求帮助来解决这个例子,我希望开发一种更可靠的方法来解决这些问题。不过,我会给你一个常见情况的概要。
我有一个解决方案,有 8 个头文件和 8 个对应的 cpp 文件。解决方案是稳定的:它编译和运行没有错误或警告。
我将进入一个头文件并添加这一行:
虚空DoNothing();
然后我会进入匹配的cpp文件并编写方法:
void DoNothing(){};
我编译并运行,得到 5 个未解决的外部错误。它们没有指向任何代码行,所以我真的不知道如何修复它们,但我显然做错了什么。很公平。为了回到稳定状态,我删除了我插入的两行代码,然后编译。即使代码与最后一个稳定状态相同,我也会得到相同的未解决的外部错误。
尝试随机的东西,我进入另一个 cpp 文件并颠倒两个包含的头文件的顺序。游戏现在编译。如果我将包含的头文件的顺序切换回来,它就会编译。
什么是未解决的外部错误?为什么他们的行为似乎与我输入的代码不一致?我如何阅读它们以找出问题所在,以及如何首先避免它们?
谢谢。
ps:如果我应该提供更具体的细节,请告诉我。
【问题讨论】:
-
在您的示例中,您似乎没有限定名称。应该是
void SomeClass::DoNothing(){} -
请提供SSCCE
标签: c++ visual-studio debugging sfml unresolved-external