【发布时间】:2018-02-28 20:35:17
【问题描述】:
我在 Ubuntu 16.04 64 位上使用 gcc 5.4.0。当我编译一个程序时:
gcc -o prog prog.c
GCC 自动链接到 C 标准库,所以我不必专门这样做。
- 如何查看 gcc 链接到哪个 C 库、libc.a 或 libc.so 或其他?
- 什么情况下会链接到libc.so? libc.so 是否需要像其他共享库一样在运行时指定?
提前致谢。
【问题讨论】:
我在 Ubuntu 16.04 64 位上使用 gcc 5.4.0。当我编译一个程序时:
gcc -o prog prog.c
GCC 自动链接到 C 标准库,所以我不必专门这样做。
提前致谢。
【问题讨论】:
如何查看 gcc 链接到哪个 C 库,libc.a 或 libc.so,还是其他?
您可以使用ldd 命令查看所有链接的共享库。如果找到libc.so,则为动态链接。
什么情况下会链接到libc.so?
gcc 默认使用动态链接并链接到libc.so。如果您想要静态链接,请传递-static 标志。
libc.so 是否需要像其他共享库一样在运行时指定?
通常不会,因为它是由编译器自动配置的。
【讨论】: