2017-04-08 2145 views
0
#include<iostream> 
using namespace std; 
double convert(int knots) 
{ 
    double mile; 
    mile = knots * 6076/5280/60; 
    return mile; 
} 

我是C++的新手,我正在寫一個非常簡單的函數,將結(int)轉換爲每分鐘英里數(double)。我寫了上面的函數,我得到了以下錯誤。「collect2:錯誤:ld返回1退出狀態。」 - 如何解決它?

collect2: error: ld returned 1 exit status 

有人可以幫我解決嗎?

+1

你如何編譯它?什麼是編譯命令?你正在嘗試構建一個可執行文件嗎? –

+0

該行之前沒有任何輸出嗎? – aschepler

回答

1

你可能在該行之前有其他錯誤消息:

undefined reference to `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
並且記住關聯規則,表達式從左向右分解,所以您只需要在多分割/乘法表達式中明確地投射第一個(或第二個)操作數。

+0

*「爲了用C++編譯,你需要聲明主函數。」*不!你可以編譯任何C++源文件。 'main'不需要編譯C++代碼。 –

+0

@AlexLop。你是toltaly rigth,編輯! – Rama

相關問題