-Wl,-M
을 CXXFLAGS
에 추가 한 후 다시 컴파일하십시오. '아카이브 회원 포함 ...'검색, 다음 행은 파일에 포함 된 라이브러리 및 해당 기능을 요청한 기능을 보여줍니다.
예 :
gcc -std=gnu99 -O0 -Wall -Wextra -Wunused -Wl,-M -c showmmap.c -o showmmap.o
gcc -std=gnu99 -O0 -Wall -Wextra -Wunused -Wl,-M showmmap.o -o showmmap
Archive member included to satisfy reference by file (symbol)
/usr/lib/x86_64-linux-gnu/libc_nonshared.a(elf-init.oS)
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o (__libc_csu_init)
/usr/lib/x86_64-linux-gnu/libc_nonshared.a(fstat.oS)
showmmap.o (fstat)
Discarded input sections
--------8<--snip--->8-----
나는 다른 도서관으로 당겨 뭔가를 찾을 수 내 문서 보관소에 주위를 발굴했다. 이 예에서 __libc_csu_init 및 fstat은 다른 아카이브 멤버를 포함하도록 요청한 함수입니다.
-Wl,-M
옵션의 출력은 ... 오히려 방대한이다, 파이프에 내가 여기에 표시 한 것은 있지만, 파일 또는 less
를 통해 출력 확인의 바로 머리에서 조그마한 조각 산출. 많은 라이브러리 루틴이 포함되어있을 가능성이 높다는 사실을 감안할 때 출력은 더 길어야합니다.
하지만 ... ... 링크 된 파일은 프로그램 실행 파일의 일부이며 런타임에 링크가 있습니다. – lornix