gcc 是否默认链接到 libc.a 或 libc.so?
Does gcc links to libc.a or libc.so by default?
我在 Ubuntu 16.04 64 位上使用 gcc 5.4.0。当我编译程序时:
gcc -o prog prog.c
GCC 自动 links 到 C 标准库,所以我不必专门这样做。
- 我如何查看 gcc link 反对 libc.a 或 libc.so 或其他什么的 C 库?
- 在什么情况下link变为libc.so?是否需要像其他共享库一样在运行时指定libc.so?
提前致谢。
How can I see which C library does gcc links against to, libc.a or libc.so, or something else?
您可以使用ldd
命令查看所有链接的共享库。如果找到 libc.so
,则为动态链接。
In what circumstance does it links to libc.so?
gcc 默认使用动态链接并链接到 libc.so
。如果你想要静态链接,传递 -static
标志。
Does libc.so need to be specified at run time like other shared libraries?
通常不会,因为它是由编译器自动配置的。
我在 Ubuntu 16.04 64 位上使用 gcc 5.4.0。当我编译程序时:
gcc -o prog prog.c
GCC 自动 links 到 C 标准库,所以我不必专门这样做。
- 我如何查看 gcc link 反对 libc.a 或 libc.so 或其他什么的 C 库?
- 在什么情况下link变为libc.so?是否需要像其他共享库一样在运行时指定libc.so?
提前致谢。
How can I see which C library does gcc links against to, libc.a or libc.so, or something else?
您可以使用ldd
命令查看所有链接的共享库。如果找到 libc.so
,则为动态链接。
In what circumstance does it links to libc.so?
gcc 默认使用动态链接并链接到 libc.so
。如果你想要静态链接,传递 -static
标志。
Does libc.so need to be specified at run time like other shared libraries?
通常不会,因为它是由编译器自动配置的。