|
|
发表于 2006-2-25 10:08:31
|
显示全部楼层
Post by 终极幻想
昨晚突然想到一个问题,就是如果我指定 -lm 的话,gcc / glibc / ldd 是怎么去找相应的库的?
刚想发帖子问,突然不知道怎么了,找到灵感了,就验证了一下。
-lm 是找 /lib/libm-2.3.6.so
-lkrb5 是找 /usr/lib/libkrb5.so.17
[html]
规律:
-l c
libc.so.6
-l krb5
libkrb5.so
-l kafs
libkafs.so
[/html]
就是把lib去掉了。算是明白了。。。
应该是:
-l c
libc.a
-l krb5
libkrb5.a
-l kafs
libkafs.a
因为 -lxxx 选项是在编译时指定的,也就是说寻找静态库。 而动态库是通过文件 /etc/ld.so.conf 指定然后通过 ldconfig 命令写进 /etc/ld.so.cache 文件,运行时由加载器搜寻。
不知这样理解是否正确。 |
|