2.2.9 定义工具链相关的环境变量

GNU Make使用了一些隐示的预定义变量,并且这些变量都有对应的默认值。如CC代表编译器,默认值是程序cc,这也是为什么Linux各个发行版中一般都有一个符号连接"cc"指向真正的编译器的原因。再比如AR代表汇编器,默认值为ar。读者可以使用下面的命令输出make的数据库,进一步查看make数据库中的信息,比如查看交叉编译环境中的编译器。

2.2.9 定义工具链相关的环境变量 - 图1

这些隐示的预定义变量可以通过环境变量覆盖,或者在makefile中显示重新定义。为了避免在编译每一个软件包时,都需要显示指定使用我们构建的交叉工具链,我们在环境变量中定义编译过程使用的相关变量。我们将相关变量定义在/home/vita/.bashrc中,确保在每次切换到vita用户时,这些变量定义自动生效。

2.2.9 定义工具链相关的环境变量 - 图2

在后面安装编译程序时,一般我们均通过给make传递变量DESTDIR指定make将它们安装到目标系统的根文件系统下,即$SYSROOT目录下。为了避免每次都需要指定DESTDIR变量,我们也在.bashrc中定义这个变量。

2.2.9 定义工具链相关的环境变量 - 图3

为了使设置生效,定义变量后需要退出并重新切换到vita用户。

注意,如果需要重新构建交叉编译工具链,在构建前,要注释掉这一节的变量定义,在构建完成工具链后再重新启用这里的变量定义。