ar 라이브러리와 가능한 오브젝트 파일이 있으면 해결되지 않은 모든 외부 기호를 찾는 가장 좋은 방법은 무엇입니까? 한 가지 가능성은 링커를 실행 한 다음 오류를 포착하는 것이지만 때때로 특정 수의 기호 다음에 중지합니다. 더 좋은 방법이 있습니까? 과 함께 당신의 mingw-w64
설치의 bin
디렉토리에서mingw 라이브러리에서 누락 된 기호 찾기
1
A
답변
0
는 C 및 C++ 컴파일러, 링커 및 도구를 만들어, 당신은 GNU binutils을 다른 프로그램을 구성해야한다고. 이러한 여러
(nm
, objdump
, readelf
)은 기호 오브젝트 파일의 테이블 또는 공유 또는 정적 라이브러리를 구문 분석 할 수 있습니다. 가장 간단한 사용은 nm
일 것입니다. bin
디렉토리가 PATH
에 있음을 가정하면, 라이브러리가 포함 된 디렉토리에서 명령 프롬프트 를 열거 나 관심 있는 오브젝트 파일과 실행
nm -u libfoo.a
또는 :
nm -u foo.obj
에 정의되지 않은 기호는 libfoo.a
또는 foo.obj
에 나열하십시오.
이러한 파일에 디맹글 링할 C++ 기호가 포함 된 경우 nm
옵션에 -C
을 추가하십시오.
이 도구는 모두 정적 라이브러리 libfoo.a
그냥 객체의 아카이브가 너무 파일을 그 안에 오브젝트 파일의 목록을 대체 libfoo.a
것처럼 nm ... libfoo.a
당신에게 단지 같은 결과를 얻을 수 있음을 인식하고 있습니다.