在Unix / Linux(Ubuntu)中编译头文件和两个.cpp文件

戴尔

我正在尝试编译3个文件,但无法获取。该代码在visual ++中有效。我已将所有3个文件上载到同一目录中,并使用了以下命令。

g ++ -o编辑Album.cpp lab8.cpp

我的文件名列在Album.cpp Album.h lab8.cpp下面

请注意,这些代码是用Visual Studio C ++编写的,并且在那里可以很好地编译。

结果如下

lab8.cpp:在函数'std :: vector read_album_file(std :: string)'中:lab8.cpp:142:25:错误:没有匹配的函数可用于调用'std :: basic_ifstream :: basic_ifstream(std :: string&) 'ifstream read(文件名); // ifstream用于从文件中读取^ lab8.cpp:142:25:注意:候选者是:在lab8.cpp:38:0包含的文件中:/ usr / include / c ++ /4.8/fstream:467:7:注意:std :: basic_ifstream <_CharT,_Traits> :: basic_ifstream(const char *,std :: ios_base :: openmode)[with _CharT = char; _Traits = std :: char_traits; std :: ios_base :: openmode = std :: __ Ios_Openmode] basic_ifstream(const char * __s,ios_base :: openmode __mode = ios_base :: in)^ /usr/include/c++/4.8/fstream:467:7:注意:否参数1的已知转换从'std :: string {aka std :: basic_string}'到'const char *'/usr/include/c++/4.8/fstream:453:7:注意:std :: basic_ifstream <_CharT,_Traits >::basic_ifstream()[with _CharT = char; _Traits = std :: char_traits] basic_ifstream():__istream_type(),_ M_filebuf()^ /usr/include/c++/4.8/fstream:453:7:注意:候选人期望使用0个参数,提供了1个/ usr / include / c ++ / 4.8 / fstream:427:11:注意:std :: basic_ifstream :: basic_ifstream(const std :: basic_ifstream&)类basic_ifstream:public basic_istream <_CharT,_Traits> ^ /usr/include/c++/4.8/fstream:427:11:注意:参数1从'std :: string {aka std :: basic_string}'到'const std :: basic_ifstream&'的未知转换

但丁

查看ifstream的构造函数原型。它需要一个const char *和一个可选参数,因此您需要编写filename.c_str()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章