我有一些关于构建GCC的构建过程的问题,我希望有人可以向我解释。
C_INLCUDE_PATH CPLUS_INCLUDE_PATH LD_LIBRARY_PATH LIBRARY_PATH
MPFR
,MPC
和GMP
来构建?如果以后安装旧版本(随download_prerequisites
下载),然后安装更新的版本,将由编译的程序使用?答案 0 :(得分:1)
为什么GCC需要MPFR,MPC和GMP来构建?
我可以回答这一部分。 MPFR和MPC是在编译时应用浮点运算所必需的。从理论上讲,MPFR可以用来解析源代码中的十进制常量(GCC开发人员曾多次说过,因为他们现在依赖于MPFR,他们也可以使用它,但据我所知,GCC的小数到 - 浮点转换仍然依赖于real.c中自己的代码。使用MPFR还允许在不具有浮点(或具有与目标体系结构不同的特性的浮点)的机器上托管交叉编译器。
GMP只是其他两个人的依赖。
它曾经不是这样,对MPFR的依赖是一个相对较新的变化(比如几年)。
如果以后安装了旧版本(下载了download_prerequisites),然后安装了更新的版本,这些版本将由编译的程序使用?
GMP,MPFR,MPC库仅在编译时使用。任何已经编译的程序都是使用编译器当时使用的这些库的版本编译的。如果您之后更新库,则从编译程序的角度来看,它不会改变任何内容。
虽然我在这里,但我想我也可以解释另一件事:
为什么需要取消设置C_INLCUDE_PATH CPLUS_INCLUDE_PATH LD_LIBRARY_PATH LIBRARY_PATH
因为构建过程将这些变量用于自己的目的,所以如果你设置它们会搞乱它。