我一直从Visual Studio 2013的C ++中得到一个无法理解的“未解决的外部错误。非常感谢您的帮助。到目前为止,我将代码简化为以下形式(但问题仍然存在):
main.cpp:
#include "Fibonacci.h"
using namespace std;
int main(void){
int RandInteger = 3;
Fibonacci Fib(RandInteger);
}
斐波那契
class Fibonacci{
public:
Fibonacci(int n=0);
protected:
int m_n0, m_n1, m_n;
};
Fibonacci.cpp:
#include "Fibonacci.h"
Fibonacci::Fibonacci(int n){
m_n0 = 0;
m_n1 = 1;
m_n = n;
}
此代码在Visual Studio 2013中产生以下错误:
错误2错误LNK1120:1个未解决的外部组件C:\ Dropbox \ todo \ c ++ \ Exam \ Ex2 \不起作用\练习2 \ fibo1 \ Fibo1 \ Debug \ Fibo1.exe Fibo1
错误1错误LNK2019:未解析的外部符号“ public:__thiscall Fibonacci :: Fibonacci(int)”(?? 0Fibonacci @@ QAE @ H @ Z)在函数_main C:\ Dropbox \ todo \ c ++ \ Exam \ Ex2 \ doesn中引用't work \ Exercise 2 \ fibo1 \ Fibo1 \ main.obj Fibo1
我仍然坚持,但是一旦我将main.cpp中的行替换为
Fibonacci Fib();
即我没有将整数传递给构造函数,一切正常(很好,它编译并没有按预期执行任何操作)。
谢谢你的帮助!我真的还是被卡住了。
最佳答案
我终于找到了我的错误。事实证明,代码本身确实没有错,但是我已经以某种方式销毁了VisualStudio项目。我确实不是这些事情的专家,但是这对我有用:
在Visual Studio中创建一个新的空项目
将您的cpp文件(也都是* .h文件)复制到新项目文件夹中
通过右键单击项目并使用“添加新项”将它们添加到该新项目中
我知道这是这样做的直接方法,但是我看不到如何打破旧项目(毕竟应该足够简单)
谢谢大家-特别是感谢otisonoza和Angew,他们使我走上了正确的道路,代码(在它们的末端有效)并没有错,但Visual Studio项目却没有错。
关于c++ - 具有简单类定义的C++外部解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21516841/