|
发表于 2008-12-11 19:59:09
|
显示全部楼层
楼主有误导大众嫌疑。:yun:
Post by ch_fb;1921424
编译 glibc 之前要安装内核头文件,编译内核之后要保持原有的内核头文件,而不用新的内核源码中的头文件。这样才能确保互为依赖的 libc 和内核完全正常的(理论上的,实际上多少会因 bug 而不能及)协同工作。
linux-kernel 仅依赖 硬件 和 gcc部分特性。
libc 应用于绝大部分现代系统,与其配合使用的内核绝不仅限于 linux-kernel,其需要的仅是内核头文件提供的平台相关信息。
libc 的历史比 linux-kernel 久的多,找些 glibc 的历史读读会很有帮助的。
另,libc 也绝不止一种,linux系统下可用的有 glibc、uclibc、newlib。
Post by ch_fb;1921424
若 libc 和内核使用不同的头文件,则当应用程序以其一为据编译,调用另一方不支持的特性时,必会出错。应用程序多与 libc 打交道,所以应当以 libc 所依赖的标准为依据,也就在是 libc 编译后要保留其所依赖的头文件供应用程序所用。
是有可能出错,不能编译,或者编译成功、运行时出错,或者不出错。
不同版本的 linux-kernel 有可能提供仅版本号定义不同的头文件。
Post by ch_fb;1921424
内核头文件才是 Linux 的真正标准,不仅 libc 要以此为据,内核(使用,非编译)也要以此为准。内核较新时就要委屈内核,不让其发挥新特性。
这是笑话,无恶意,理由见偶关于 linux-kernel 的描述。
Post by ch_fb;1921424
所谓“净化”也就是把仅在内核内部各部分间使用的接口剔除,只留下供外部使用的公开接口。libc 也就是以此公开接口为标准编译,所有的应用程序也应当是。“净化”过的内核头文件就是绝对标准。
YY ,哈哈!
用户空间程序没有任何理由直接使用内核头文件,仅应使用 glibc、libstdc++ 提供的系统头文件,所谓的“净化”只是为了提供一套稳定的内核头文件给 glibc,使其不必跟着 linux-kernel 的升级而升级,这个读读 glibc 的历史会有帮助。
当前版本的 linux-kernel 提供的已是“净化”过的头文件。 |
|