使用ldd -u,输出是"Unused direct dependencies:/lib64/libc.so.6",但我确实使用printf()

use*_*105 3 linux gcc shared-libraries ldd

在Fedora 18中,我写了一个文件"ac",如下所示:

#include <stdio.h>
void main(void)  
{  
    printf("a");
}
Run Code Online (Sandbox Code Playgroud)

然后我用gcc 4.7.2编译它:gcc a.c -o a
最后使用ldd 2.16:ldd -u ./a
输出很奇怪:

Unused direct dependencies:
/lib64/libc.so.6

我认为目标文件真的/lib64/libc.so.6是因为使用printf().在Red Hat 6中,
没有这种奇怪的外观.

小智 7

只是ldd -u效果不好; 建议你使用ldd -u -r.

参见例如https://bugzilla.redhat.com/show_bug.cgi?id=216864