|
发表于 2008-7-18 11:41:41
|
显示全部楼层
第一次是静态编译,不生成动态库,第二次则生成,不只是c++支持的问题
说的太笼统,这都是大家了解的。
能不能解释一下这个动态库是干吗?都是哪些文件吗?谁使用它?
还有就是第二次除了 c++ 支持外还有什么??
请指教
要编译动态库,就需要Glibc提供的启动代码。但是在完成Glibc之前我们没有这个,所以第一遍无法编译出使用动态库的gcc
说的好,请大大再稍微的解释一下 gcc 使用这个动态库干吗?是运行时库吗?
手册上关于这个库的原文是这样的:
--enable-shared
Enable the creation of the shared libraries.
--disable-shared
Disables the creation of the shared libraries.
第一遍编译的gcc是裸编译器,也就是没有任何库支持的编译器,只能编译glibc、linux-kernel等一类完全自给自足的软件包
还是两位大大总结的好啊,但小子觉得还有些不全面,呵呵!!
glibc 只需要头文件,而 linux 内核头文件和链接库都不使用,所以它们是“完全自给自足”,所以第一遍的 gcc 能够编译这些。
但这并不是说,第一遍的不能编译其它的使用动态链接库的程序,只要你已经编译了 glibc 链接库,那么第一遍的 gcc 就能用已经编译出的 glibc 链接库来编译其它的程序,并且是动态链接,只是你在运行编译出的二进制文件时需要把相应的编译时使用的链接库拷贝过去。
请各位指正 |
|