编译过程中的注意事项

来源:互联网 发布:python 空间 编辑:程序博客网 时间:2024/06/05 04:15

1编译是强烈建议单独建立一个文件夹。

建立交叉工具链的第一步:设置内核头文件

通过配置内核头文件,可以产生工具链建立时所需的头文件 

configure命令会检测主机上是否存在某些资源,并且会为包中每个工具程序产生适当的makefile。configure的执行结果将会放在执行命令的目录中。

--prefix 表示包要安装到哪个目录

安装后每个文件的前缀都是之前--target定义的值。

 2一般在安装文件的代码树中都有install文件,详细说明配置选项的作用。

3现在临时的C库已经装好,接下来本章中要编译的所有工具应该连接到这些库上。为了达到这个目标,需要调整连接器和编译器的 specs 文件。

4这些软件包里的程序将静态连接以便在使用时独立于宿主系统。接下来的步骤是编译 Glibc ,就是 C 运行时库。Glibc 将由第一遍建立的工具链程序编译。然后将第二遍编译的工具链动态连接到刚刚编译好的 Glibc 库上。

装完 Glibc 之后,需要做一些调整使得只在 /tools 目录里搜索和连接。安装一个调整好的 ld ,它的固化搜索路径限制在 /tools/lib 目录。然后修改 gcc 的 specs 文件以指向 /tools/lib 目录里新的动态连接器。最后这一步在整个过程中至关重要,像上面提到的,指向动态连接器的固化路径被嵌入到每个 ELF 可执行文件里。运行命令来检查:readelf -l <二进制文件名> | grep interpreter 。修改 gcc 的 specs 文件以确保本章后面编译的每一个程序都使用位于 /tools/lib 目录里新的动态连接器。

原创粉丝点击