头文件所在位置
c的标准头文件: /usr/include/, 如stdio.h
c++的标准头文件:/usr/include/c++/4.1.2/,如iostream
kernel提供给libc的头文件,通常放在/usr/include里,
可以在kernel源码目录下make INSTALL_HDR_PATH=dest headers_install安装到dest/include下。
# gcc -print-libgcc-file-name
/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/libgcc.a
gcc -print-prog-name=ld
查看gcc使用的哪个连接器
gcc dummy.c -Wl,--verbose 2>&1 | grep succeeded
ld --verbose
看连接过程中都连接了哪些目标文件
gcc -dumpspecs
可查看当前gcc的配置
将该命令的输出存成specs文件,放在libgcc.a所在的目录下, 可修改其内容并以改变gcc配置。
spec文件中有一行代表其动态linker的路径
*dynamic_linker:
/lib/ld-linux.so.2
使用readelf -l a.out命令,可查看a.out具体使用的哪个动态连接库。(nm工具也可以看)
gcc build
1. 需要先将gmp/mpfr/mpc三个包解压到gcc源码目录,并改名为gmp/mpfr/mpc(将版本字符串去掉), 或建立符号连接。
2. 最好在源码目录以外的其他目录进行configure和编译。
ldd 查看文件会用到哪些动态连接库,并显示库具体的所在位置。
nm 查看库文件中的符号列表