我使用的C ++ IDE的最新版本是VC98,所以很多事情都发生了变化,我感到困惑。
我正在尝试创建一个类MyParser
。我在解决方案资源管理器的MyParser.h
中有其头文件Header Files
,在MyParser.cpp
中有源文件Source Files
。
MyParser.h
如下所示。
#include <string>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>
using namespace std;
class MyParser
{
private:
boost::property_tree::ptree pt;
public:
MyParser(string str);
};
MyParser.cpp是:
#include "MyParser.h"
#include <iostream>
using namespace std;
MyParser::MyParser(std::string str)
{
boost::property_tree::read_xml(str, this->pt);
}
main.cpp
(在同一解决方案下的另一个项目中)是
#include <string>
#include <iostream>
#include "MyParser.h"
using namespace std;
int main()
{
string content = "some xml string.....";
MyParser parser = MyParser(content);
return 0;
}
然后我遇到了LNK2019
错误:
未解析的外部符号“ public:__cdecl MyParser :: MyParser(class std :: basic_string,class std :: allocator>)“ (?? 0MyParser @@ QEAA @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z) 在函数主测试C:\ MySpace \ test \ test.obj
中引用
但是,一旦我将构造函数的实现转移到MyParser.h
中,错误就会消失。
有人可以向我指出我的代码/配置有什么问题吗?非常感谢