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

나는 C에 새로운 오전 ++ 나는 분 (double) 당 마일 노트 (int)을 변환하는 매우 간단한 기능을 쓰고 있어요. 위의 기능을 썼는데 다음과 같은 오류가 발생했습니다."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; 
} 

을 : 당신은 operator/ 버전의 것을 사용하도록 명시 적으로 위해 double에 주조하는 적어도 하나 개의 값에 필요 . Why can't I return a double from two ints being divided
연관성 규칙을 기억하면식이 왼쪽에서 오른쪽으로 해석되므로 다중 나누기/곱셈 식의 첫 번째 (또는 두 번째) 피연산자를 명시 적으로 캐스팅하면됩니다.

+0

* "C++로 컴파일하려면 main 함수를 선언해야합니다."* NO! 모든 C++ 소스 파일을 컴파일 할 수 있습니다. C++ 코드를 컴파일하기 위해'main'을 사용할 필요는 없습니다. –

+0

@AlexLop. 너는 toltaly rigth, 편집! – Rama

관련 문제