정의되지 않은 기호 ___gxx_personality_v0 링크
문제
이 명령 줄을 사용 하여이 정의되지 않은 심볼 빌딩을 얻었습니다.
$ gcc test.cpp
Undefined symbols:
"___gxx_personality_v0", referenced from:
etc...
test.cpp는 간단하고 잘 만들어야합니다. 거래는 무엇입니까?
해결책
사용
g++ test.cpp
대신, 이것은 C ++ 코드이므로.
또는, 당신이 진짜 사용하고 싶습니다 gcc
, 추가하다 -lstdc++
그렇게하는 명령 줄에 :
gcc test.cpp -lstdc++
달리기 md5
에 대하여 a.out
각 시나리오에서 제작 된 것은 동일한 출력임을 보여줍니다.
하지만 그래, g++
아마도 당신의 세상을 더 간단한 장소로 만들 것입니다.
다른 팁
그만큼 .cpp
확장 원인 gcc
파일을 C ++ 파일로 컴파일하려면 (참조 GCC 문서.)
동일한 파일을 컴파일하려고 시도하지만 이름을 바꾸십시오. .c
확대:
mv test.cpp
gcc test.c
또는 통과하여 언어를 명시 적으로 지정할 수 있습니다. -x c
컴파일러에 :
gcc -x c -c test.cpp -o test.o
당신이 달리면 nm test.o
이 c- 언어 버전에서는이를 알 수 있습니다 ___gxx_personality_v0
기호로 나열되지 않습니다.
(그리고 생성 된 개체 파일에서 동일한 명령을 실행하는 경우 gcc -c test.cpp -o test.o
,, ___gxx_personality_v0
기호가 있습니다.)
누구나 나와 같은 문제가있는 경우를 대비하여 : 파일 확장자는 .c
아니에요 .C
(GCC는 사례에 민감합니다).
같은 문제가 있었지만 다른 해결책이있었습니다.
정적 라이브러리의 C ++ 코드는 링크되고 .m 파일에 의해 참조되고 있습니다. .m 파일을 .mm으로 바꾸면 문제가 수정되었습니다.
제휴하지 않습니다 StackOverflow