我一直在使用Visual Studio作为我正在开发的一个项目,但它也必须在Linux上使用GCC进行编译。我已经完成了我的项目,它运行良好,但我把文件交给我的Linux外壳和我收到一个错误与代码一个简单的一行:用g ++编译ifstream错误,但用Visual Studio编译
std::ifstream input(s);
这给了我错误说没有匹配的功能。顺便说下,s
是std::string
。 任何人都可以启发我,为什么这是在Visual Studio下运行,但不是GCC,即使我正在查看ifstream的文档?也许是GCC的旧版本?
编辑:GCC版本是4.2.1确切的错误是:
error: no matching function for call to 'std::basic_ifstream<char,
std::char_traits<char>>::basic_ifstream(std::string&)'
编辑2:相关代码:
std::string s = "";
if(argc == 2)
s = argv[1];
else{
std::cout << "Bad filename?" << std::endl;
return 1;
}
std::ifstream input(s);
什么是错误? – Joe 2012-04-24 17:05:39
这个:http://ideone.com/w6IJ5正常工作;你应该发布完整的代码。 – 2012-04-24 17:09:50
@RoryYorke更新我认为是唯一相关的代码。 – 2012-04-24 17:14:46