2011-01-19 91 views
0

关于freebsd libstdC++。因此不会链接到libc.so,但它必须调用open,close等函数。为什么它不像在Linux上说的那样在ldd的输出中列出?为什么freebsd上的libstdC++不需要链接到libc.so?

freebsd$ ldd libstdc++.so 
libstdc++.so: 
libm.so.2 => /usr/lib/libm.so.2 (0x21113000) 

linux$ ldd libstdc++.so.6 
linux-vdso.so.1 => (0x00007fff2d316000) 
libm.so.6 => /lib/libm.so.6 (0x00007fdd043e9000) 
libc.so.6 => /lib/libc.so.6 (0x00007fdd04066000) 
/lib64/ld-linux-x86-64.so.2 (0x00007fdd04995000) 
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fdd03e4f000) 
+2

你在试用FreeBSD的哪个版本?从libm.so版本来看,它看起来很老旧。无论如何,至少在FreeBSD 7.X,8.X和9.X ldd libstdC++。这样在输出中显示libc.so。 – Grrrr 2011-01-19 12:22:08

+0

这是旧的,FreeBSD 4.11。这是否意味着libc.so以某种方式链接到libstdC++。在这个版本上如此静态化? – 2011-01-19 14:26:29

回答

0

open()close()功能都没有从libc。它们是本机FreeBSD API