C++ ld返回1个正在传递参数的退出状态错误
这个编译得非常好C++ ld返回1个正在传递参数的退出状态错误,c++,c++11,c++14,C++,C++11,C++14,这个编译得非常好 const int NUM_PLAYERS = 10; struct wrType { string name[NUM_PLAYERS]; string team[NUM_PLAYERS]; int catches[NUM_PLAYERS]; int yards[NUM_PLAYERS]; int td[NUM_PLAYERS]; double ypc[NUM_PLAYERS]; }; void populateList(wrType[], ifstream&);
const int NUM_PLAYERS = 10;
struct wrType
{
string name[NUM_PLAYERS];
string team[NUM_PLAYERS];
int catches[NUM_PLAYERS];
int yards[NUM_PLAYERS];
int td[NUM_PLAYERS];
double ypc[NUM_PLAYERS];
};
void populateList(wrType[], ifstream&);
int main(int args, char* argv[])
{
wrType *wide;
char select;
ifstream in;
in.open(argv[1]);
/*populateList(wrType wide, ifstream in); code causing error*/
}
void populateList(wrType wide, ifstream in)
{
};
一旦我取消注释下面的代码
“大众主义者(宽,内);”
我得到以下错误
“ld返回了1个退出状态错误”
编译后。
我看了很多论坛,都没能解决这个问题。我们最近进入了结构和类,我不确定我是否误解了一个概念,或者如何让它工作
该代码应该通过命令行传递一个文件,然后能够访问它,并使用气泡排序法按足球运动员的不同统计数据排序,即10名球员。我不想让别人牵着我的手,这就是为什么我把剩下的留给我以后去解决的原因。代码在没有函数和main的情况下工作,但只要我尝试用我拥有的代码调用函数,它就会给我一个错误
另外,当我尝试将它们作为指针传递时,它会给我一个错误消息:无法将myType*转换为myType
更新时出现完整错误:
'在函数main'中:
(.text+0xad):对
populateList(wrType*,std::basic_ifstream>&)”的未定义引用
collect2:错误:ld返回了1个退出状态'
编辑2:
代码与
“populateList(wrType-wide,ifstream-in);”
返回以下错误:
在函数“int main(int,char**)”中:
34:22:错误:“宽”之前应为主表达式
populateList(wrType wide,ifstream in);
^
34:37:错误:“in”populateList之前应为主表达式(wrType-wide,ifstream-in)
这段代码中有很多问题
[…]
wrType wide[NUM_PLAYERS];
void populateList(wrType[], ifstream&);
大众列表定义与该行一致
void populateList(wrType[] wide, ifstream& in)
{
}
然后填充身体。请注意,下面的行
in >> wide.name[x];
不再正确,您需要更改它们。1。这是您收到的唯一错误消息吗?2.未注释的代码应该做什么?3.您确定使用VisualC++吗?注释的代码试图调用您的PultAlelistFor函数吗?您需要populateList(宽,中)代码>如果是这样的话。您的函数表示它期望的类型,当您调用它时,您将传递这些类型的实例。(顺便说一句,它们不必被称为wide
和in
。不过,它们是可以的。)你的声明和定义不同——你必须修正它。链接器找不到函数,它会认为它是不同的重载。调用函数时-不传递类型,只传递变量:populateList(宽,in)代码>我正在ubuntu和g++上使用gedit进行编译。是的,注释掉的代码就是我试图使用的代码,也是导致错误的原因。删除了不相关的“visual c++”标记。您使用的是哪个版本的g++?这应该是一个编译错误,而不是链接器错误。非常感谢。它解决了这个问题。我只需要继续练习和阅读。我最初是作为wrType-wide[NUM_PLAYERS]使用的;但从未将函数声明更改为(wrType[]宽,ifstream&in)。出于某种原因,我认为键入“wrType[]”是错误的。我不确定我是从哪里得到这个概念的。有一秒钟,我以为我掌握了所有C++。我犯了一个新手错误。
void populateList(wrType wide, ifstream in)
void populateList(wrType[], ifstream&);
void populateList(wrType[] wide, ifstream& in)
{
}
in >> wide.name[x];