编译过程中的注意事项
2007-08-31 11:57
267 查看
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 目录里新的动态连接器。
建立交叉工具链的第一步:设置内核头文件
通过配置内核头文件,可以产生工具链建立时所需的头文件
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 目录里新的动态连接器。
相关文章推荐
- Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项
- Mac 10.10 下载、编译android4.4过程及注意事项
- Qt5.1.1 编译 MySql5.6.17驱动程序的过程和注意事项
- Ubuntu上交叉编译valgrind for Android 4.4的过程与注意事项
- Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项
- Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项
- Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项
- Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项
- Qt5.1.1 编译 MySql5.6.17驱动程序的过程和注意事项
- windows下GDAL及python接口编译过程注意事项
- VS2008编译boost正则表达式库Regex过程中的注意事项
- Android系统源码编译注意事项
- Flex SDK编译Stage3D注意事项
- oracle 存储过程的基本语法及注意事项
- 润乾报表v5调用sqlserver存储过程数据集接收报表参数为空值的判断注意事项
- mac下用git操作(push、pull)过程及注意事项
- 表单提交的相关注意事项,submit-onclick-事件触发执行过程
- 打包测试 之 企业证书的打包过程以及注意事项(in-house方式)
- java 类文件编译注意事项
- oracle 存储过程的基本语法 及注意事项