2011-05-12 6 views
1

나는 우분투 (10.04)에 C++로 프로그램을 작성하고 내가 그것을 재치 g ++ cat.cc가 잘 작동 C는 C++ 파일 확장자 문제

를 컴파일해야 할 때 파일 as.cc을 저장. 코드가 잘 작동하는 데 문제가 없습니다. /tmp/cc8aU82C.o :(eh_frame + 0x12로) :. collect2 '__gxx_personality_v0`로 정의되지 않은 참조 : 나는 그것이 나에게 다음되는 오류를 보여보다 GCC와 함께 컴파일 할 때

하지만 신분증 1 개 종료 상태를 반환

내 코드는 다음입니다 :

#include<stdio.h> 
#include<stdlib.h> 
struct man 
{ 
    int a ; 
    int b; 
    void show(int x,int y); 
} 
}; 

int main() 
{ 
    man m; 
    int c=50; 
    int d; 
    m.show(c,d); 
    return 0; 
} 

void man::show(int x,int y) 
{ 
    printf("%d",x); 
} 

내가 GCC로 컴파일 할 때 이제 누군가가 잘못 무슨 말해 줄 수?

.cpp와 .cc 확장자가 사용하는 이유와 동일한 경우 정확히 차이가 무엇입니까? 왜 존재합니까?

+4

코드에 오류가 있습니다. 추가로 믿습니다.}; 구조가 끝난 후 .. 확인해주세요 – manugupt1

+0

[가능한 __gxx_personality_v0은 무엇입니까?] (http://stackoverflow.com/questions/329059/what-is-gxx-personality-v0-for) –

답변

4

gcc로 컴파일하면 C++ 런타임은 기본적으로 링크되지 않으므로보고있는 것과 같은 링커 오류가 발생합니다. gcc와 g ++는 .cpp와 .cc 확장자 (그리고 내가 잊어 버렸던 다른 것)를 가진 파일을 C++로 컴파일하고, .c 확장자가 C 인 파일을 컴파일합니다. 그러나 명시 적으로 g ++ fror를 사용하는 것이 더 좋습니다. gcc for C.

+0

어떻게해야합니까? 이 코드와 연결된 +++ – user513164

+0

@user 프로세스 진입 및 종료 코드. –

+0

'g ++'또는'gcc -lstdC++'를 사용하십시오. –

0

gcc는 C 컴파일러가 아니라 C++ 컴파일러이며, g ++는 C++ 컴파일러입니다.

0

일부 사람들이 사용했기 때문에 존재합니다. :-)

g ++로 컴파일 할 때 코드를 C++로 컴파일한다고 말합니다. 그렇다면 확장은 중요하지 않습니다.