“collect2:错误:ld返回1退出状态。” - 怎么解决?

时间:2017-04-08 18:21:01

标签: c++

#include<iostream>
using namespace std;
double convert(int knots)
{
    double mile;
    mile = knots * 6076 / 5280 / 60;
    return mile;
}

我是C ++的新手,我正在编写一个非常简单的函数,将结(int)转换为每分钟英里数(double)。我写了上面的函数,我得到了以下错误。

collect2: error: ld returned 1 exit status

有人可以帮我解决吗?

1 个答案:

答案 0 :(得分:1)

在该行之前可能还有其他错误消息:

  

对'main'的未定义引用

为了用c ++构建可执行程序,你需要声明main函数。

这是你的程序的主要入口点,试试这个:

#include<iostream>
using namespace std;
double convert(int knots)
{
    double mile;
    mile = double(knots) * 6076 / 5280 / 60;
    return mile;
}


int main(void) {

    double miles = convert(10); //use convert function
    cout << "Miles: " << miles << endl; //print result 
    return 0;
}

注意:您需要至少将一个值显式转换为double才能使用该operator/版本。见Why can't I return a double from two ints being divided
并且记住关联性规则,表达式从左到右解析,因此您只需要在多重除法/乘法表达式中显式地转换第一个(或第二个)操作数。