2012-10-13 2 views
3

학습을위한 여행에서 실제 웹 사이트에서 C++ Manual thats를 통해 학습합니다. 나 DevC++를 사용하고 컴파일러 오류 여부를 알지 못해 문제가 발생했습니다."Main"의 다중 정의

필자는이 코드를 비트 단위로 타이핑하여 필자가보다 생산적으로 느낄 수있게 만들었고 필자가 예제에 대해 배운 내용을 추가 한 다음 변수를 초기화합니다. 이

#include <iostream> 

using namespace std; 
int main() 
{ 
    int a=5;  // initial value = 5 
    int b(2); // initial value = 2 
    int result; // initial value undetermined 

    a = a + 3; 
    result = a - b; 
    cout << result; 

    return 0; 
} 

이 메인 ""여러 정의 "라는 컴파일러 오류를 보여주고있다" 지금이 지금의 컴파일러 오류를 추측 메신저 실제 C++ 페이지에있는 C에있는 코드 ++ 매뉴얼입니다.

누군가이 상황이 발생하는 이유와이 오류의 원인에 대해 올바른 방향으로 알려 주시기 바랍니다.

+0

프로젝트에 다른 파일에도 기본 파일이 포함되어 있습니까? 보통 이러한 오류 메시지는 매우 자명합니다. –

+1

실제 사이트의 C++ 설명서는 무엇입니까? – chris

+1

프로젝트에 파일이 여러 개 없으면이 단일 파일을 여러 번 컴파일하고 있습니까? (커맨드 라인에서,'C++ x.cc x.cc -ox'는 그것을 할 것입니다.) – hvd

답변

2

"main"의 여러 정의는 main에 대한 다른 정의가 있음을 나타냅니다. 아마도 프로젝트의 다른 .c 또는 .cpp 파일에있을 수 있습니다. 동일한 이름과 서명 (매개 변수 유형)을 가진 하나의 함수 만 가질 수 있습니다. 또한 main은 매우 특별하므로 프로젝트에서 진입 점으로 사용할 수있는 주요 함수 (매개 변수 하나, int 또는 int 및 char **) 만 사용할 수 있습니다.

P. 기술적으로 이는 링커 오류입니다. 미묘한 차이점이 있지만 기본적으로 동일한 이름을 가진 정의가 두 개 이상 있기 때문에 링커가 어떤 함수가 진입 점이되어야 하는지를 결정할 수 없다는 불만을 제기합니다.

+1

그는 다른 메인을 쉽게 찾을 수 있습니다.이 메인과 F10 키를 눌러 다른 메인으로 들어가기 만하면됩니다. –

+0

모두 감사합니다. dev-cpp에서 프로젝트 폴더에있는 것을 깨닫지 못했습니다. 한 페이지를 컴파일하려고했을 때입니다. 다른 파일의 주 파일도 분리되어 있어야합니다. 그래서 프로젝트 폴더에서 다른 페이지를 제거하자마자 작동했습니다. – Jsp1304

관련 문제