【发布时间】:2012-09-27 19:12:28
【问题描述】:
每次我尝试使用 Visual C++ 2008 进行调试时都会出错
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
void load(const char* filename) {
vector <string*> vec;
ifstream in(filename);
char buffer[256];
while(!in.eof()) {
in.getline(buffer, 256);
vec.push_back(new std::string(buffer));
}
}
int main(int argc, char* args[]) {
cin.get();
return 0;
}
得到这个错误
Compiling...
main.cpp
Linking...
main.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: __thiscall std::_Vector_const_iterator,class std::allocator > *,class std::allocator,class std::allocator > *> >::_Vector_const_iterator,class std::allocator > *,class std::allocator,class std::allocator > *> >(class std::basic_string,class std::allocator > * *,class std::_Container_base_secure const *)" (??0?$_Vector_const_iterator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@PAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@PAPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@PBV_Container_base_secure@1@@Z)
E:\blabla\Debug\test2.exe : fatal error LNK1120: 1 unresolved externals
我做错了什么?
【问题讨论】:
-
似乎您正在混合调试和发布设置。代码应该可以工作。
-
附带说明,我建议使用vector
作为缓冲区,而不是char[]。顺便说一句,为我编译的代码,一定是你的项目设置。 -
你能在 VC++ 2010 或 2012 上试试吗,因为它适用于它们。
-
代码在我的电脑上运行良好,使用 VS2012 Express。
-
@ecbrodie 或者更好的是 git 摆脱
using namespace std;并在其他任何地方添加std::。
标签: c++ vector fstream push-back