当前位置: 技术问答>linux和unix
linux调用库的问题
来源: 互联网 发布时间:2016-07-24
本文导语: 在写C程序的时候用到静态库的函数例如strcpy,为什么在编译的时候用gcc不用加参数-l表示用到的库?难道是默认的吗?谢谢 | http://student.csdn.net/space.php?uid=115985&do=blog&id=7654 $ ldd a.out linux-vds...
在写C程序的时候用到静态库的函数例如strcpy,为什么在编译的时候用gcc不用加参数-l表示用到的库?难道是默认的吗?谢谢
|
http://student.csdn.net/space.php?uid=115985&do=blog&id=7654
$ ldd a.out
linux-vdso.so.1 => (0x00007fffdb3ff000)
libc.so.6 => /lib64/libc.so.6 (0x0000003329000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003327c00000)
$ nm /lib64/libc.so.6 | grep strcpy
00000033290808f0 t __GI_strcpy
00000033290fc160 T __strcpy_chk
0000003329089e50 T __strcpy_small
00000033290808f0 T strcpy
"T"表示strcpy的实现在libc.so.6的代码段
$ ldd a.out
linux-vdso.so.1 => (0x00007fffdb3ff000)
libc.so.6 => /lib64/libc.so.6 (0x0000003329000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003327c00000)
$ nm /lib64/libc.so.6 | grep strcpy
00000033290808f0 t __GI_strcpy
00000033290fc160 T __strcpy_chk
0000003329089e50 T __strcpy_small
00000033290808f0 T strcpy
"T"表示strcpy的实现在libc.so.6的代码段
|
printf、strcpy这些函数,他们所在的库都是默认链接的,不必用-l指定
|
不用加参数那肯定是默认的啊
|
哈,新手,学习了、、
|
学习
|
学一学
|
guoke