当使用g ++构建应用程序时,我没有显式地将libc
库作为链接库传递-lpthread
给您,就像您对其他库所做的一样(例如传递)。
我知道它libc
具有libc.so.6
so名称,但我知道这实际上不是库,而是类似指向另一个版本的指针libc
(例如libc-2.15.so
)的东西。
如果libc
我的计算机上有多个版本,该如何真正使用libc.so.6
哪个版本?
ldd
应该是您选择的工具。这使您可以实际链接共享库。
confus@confusion:~/misc/test$ ldd -r -v testendian
linux-vdso.so.1 => (0x00007fffbcfff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a5a4c5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1a5a8a5000)
Version information:
./testendian:
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
如果使用libc,则只需运行该.so
文件,系统就会告知该库的版本。
confus@confusion:~/misc/test$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10) stable release version 2.15, by Roland McGrath et al.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句