문제

이 명령 줄을 사용 하여이 정의되지 않은 심볼 빌딩을 얻었습니다.

$ 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으로 바꾸면 문제가 수정되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top