C++ 从std::cin读取会产生链接器错误
我有一个相当不寻常的问题。我正在尝试这样做:C++ 从std::cin读取会产生链接器错误,c++,linker,std,fastcgi,C++,Linker,Std,Fastcgi,我有一个相当不寻常的问题。我正在尝试这样做: char *content = new char[10000]; std::cin.read(content, 10000); 我得到了以下链接器错误(奇怪的是,代码在几周前编译得很好,而且还没有修改): 错误LNK2001:未解析的外部符号“\uu declspec(dllimport)public:class std::basic\u istream&\uu thiscall std::basic\u istream::read(char*,\
char *content = new char[10000];
std::cin.read(content, 10000);
我得到了以下链接器错误(奇怪的是,代码在几周前编译得很好,而且还没有修改):
错误LNK2001:未解析的外部符号“\uu declspec(dllimport)public:class std::basic\u istream&\uu thiscall std::basic\u istream::read(char*,\uu int64)”(\uu imp\uu?read@$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z) main.obj
我验证了我已经在项目属性中链接了所有必需的依赖项,验证了我已经设置了/MT等等。就在几周前,这个项目的编译还不错——从那时到现在,我唯一做的事情就是更新VS2012。这是我的包裹
#include <stdlib.h>
#ifdef _WIN32
#include <process.h>
#else
#include <unistd.h>
extern char ** environ;
#endif
#include "fcgio.h"
#include "fcgi_config.h"
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/algorithm/string.hpp>
#包括
#ifdef_WIN32
#包括
#否则
#包括
外部字符**环境;
#恩迪夫
#包括“fcgio.h”
#包括“fcgi_config.h”
#包括
#包括
#包括
似乎在更新Visual Studio 2012后,该项目(不知何故)变得不起作用。将完全相同的代码复制到新项目中已修复了此问题。检查项目设置,查看是否将其配置为忽略默认库。据我所知,您的包含不包含iostream
。或者您正在使用gcc
而不是g++
来编译代码。您的文件是否以“.c”结尾。似乎调用了C编译器来编译您的程序。您的read
函数调用有错误。它应该是std::cin.read(内容,10000)
在内容
参数前面没有星号。我感谢大家的帮助。它没有忽略默认的libs,包括iostream不工作,文件以.h结尾。我真是不知所措。
#include <stdlib.h>
#ifdef _WIN32
#include <process.h>
#else
#include <unistd.h>
extern char ** environ;
#endif
#include "fcgio.h"
#include "fcgi_config.h"
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/algorithm/string.hpp>