programing

링크에서 정의되지 않은 기호 __gxx_personality_v0

copysource 2022. 8. 11. 23:27
반응형

링크에서 정의되지 않은 기호 __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++아마 세상을 더 심플하게 만들 수 있을 거예요.

같은 문제를 안고 있었지만, 다른 해결 방법이 있었다.

스태틱 라이브러리의 C++ 코드가 링크되어 .m 파일에 의해 참조됩니다..m 파일의 이름을 .mm로 변경하면 문제가 해결되었습니다.

.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는 대소문자를 구분합니다).

언급URL : https://stackoverflow.com/questions/203548/undefined-symbol-gxx-personality-v0-on-link

반응형