2017-10-28 18 views
1

ar 라이브러리와 가능한 오브젝트 파일이 있으면 해결되지 않은 모든 외부 기호를 찾는 가장 좋은 방법은 무엇입니까? 한 가지 가능성은 링커를 실행 한 다음 오류를 포착하는 것이지만 때때로 특정 수의 기호 다음에 중지합니다. 더 좋은 방법이 있습니까? 과 함께 당신의 mingw-w64 설치의 bin 디렉토리에서mingw 라이브러리에서 누락 된 기호 찾기

답변

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 당신에게 단지 같은 결과를 얻을 수 있음을 인식하고 있습니다.