我正在尝试创建一个项目来调用另一个项目,所以它应该允许我从另一个项目调用头文件但是一旦我调用,就会出现lnk错误2019。
我无法理解为什么会这样。
最初我认为这是编译器的问题。但我慢慢意识到,项目不能相互关联。任何解决方案都可以帮助我克服这个问题。
示例:
创建了一个日期proj(包含datetime.h链接,其中包含date.h和time.h,工作精细) 创建了一个power pro - 只存储float变量。 创建了一个输入项目,用于存储上述两个项目的日期和功率。 但是一旦我声明了输入输入;它有链接器问题</ p>
源代码如下.. 的 Input.h
#ifndef INPUT_H
#define INPUT_H
//#include "../Date/DateTime.h"
#include "../Power/Power.h"
class Input{
public:
Input();
//{
/*DateTime datetime;
SetDateTime(datetime);*/
//}
friend ostream& operator << (ostream &output, const Input &value);
friend istream & operator>>( istream &input, Input &value );
void SetPower(Power power){
mpower = power;
}
Power GetPower(){
return mpower;
}
//get and set method of variable DateTime
/*void SetDateTime(DateTime datetime);
DateTime GetDateTime();*/
private:
string test;
Power mpower;
//DateTime m_datetime;
};
#endif
input.cpp文件
ostream& operator << (ostream &output, const Input &value){
output<<"test";
//<<value.test;
//output<<value.m_datetime<<endl;
return output;
}
istream & operator>>( istream &input, Input &value ){
//input>>value.m_datetime;
return input;
}
答案 0 :(得分:0)
以下是问题的描述(http://msdn.microsoft.com/en-us/library/799kze2z%28v=vs.100%29.aspx) “函数'函数'中引用的”未解析的外部符号'符号'“
它正是它的本质。您需要链接实际定义符号/对象的库或实现位置。通常头文件只包含声明,但编译后,链接器也需要您的实现,因为您正在引用主项目中的那些(您的主项目正在使用这些对象)。因此链接器无法链接您的代码。
在VS2010中,转到配置属性 - &gt;链接器 - &gt;常规 - &gt;其他库目录并指定库路径。然后转到Configuration Properties-&gt; Linker-&gt; Input-&gt; Additional Dependencies并指定lib的名称(Power.lib?)
希望有所帮助。如果这样可以解决您的问题,请告诉我。