【发布时间】:2010-11-08 00:24:48
【问题描述】:
我有一些关于编译 C 的基本知识,但需要回答几个通用的交叉编译问题。就我而言,我试图在我的 Fedora Linux 机器上交叉编译一个程序,该程序将在 ARM 单板计算机上运行。
我的第一个问题是关于标题的。我已经下载了 arm Linux 工具包,它包含头文件,例如包含目录中的 stdio.h。当我交叉编译时,我应该使用这个“目标”包含目录而不是我的系统包含目录吗?还是可以指向我系统的包含目录,例如 /usr/include? (当我对它们进行比较时,这些头文件似乎有所不同。)
如果头文件不存在会发生什么。就我而言,我还计划在 ARM 板上使用 cURL 库。我可以简单地指向我下载的 curl 源包中存在的包含目录而不用担心目标架构吗?如果是,这是否意味着我的第一个问题无关紧要?
假设我想静态链接到一个库。在发生这种情况之前,是否需要为目标 ARM 平台编译这个静态库?或者我可以直接使用我系统上安装的静态库(希望交叉编译过程能够处理业务)?
如果我决定动态链接到一个库,唯一的要求是目标系统已经为 ARM 编译了这个库并安装在 ARM 板上的 LD_LIBRARY_PATH 目录之一中,对吗?
感谢您的帮助。
【问题讨论】:
标签: c arm cross-compiling