加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C的交叉编译要求

发布时间:2020-12-16 04:51:33 所属栏目:百科 来源:网络整理
导读:我有一些关于编译C的基本知识,但需要回答一些通用的交叉编译问题.就我而言,我试图在我的Fedora Linux机器上交叉编译一个程序,该程序将在ARM单板计算机上运行. 我的第一个问题是关于标题.我已下载arm Linux工具包,它在include目录中包含头文件,如stdio.h.当我
我有一些关于编译C的基本知识,但需要回答一些通用的交叉编译问题.就我而言,我试图在我的Fedora Linux机器上交叉编译一个程序,该程序将在ARM单板计算机上运行.

>我的第一个问题是关于标题.我已下载arm Linux工具包,它在include目录中包含头文件,如stdio.h.当我交叉编译时,我是否应该使用这个“目标”包含目录而不是我的系统包含目录?或者可以指向我的系统包括目录,例如/usr/include? (当我对它们进行区分时,这些头文件似乎有所不同.)
>如果头文件不存在会发生什么.就我而言,我还计划在ARM板上使用cURL库.我可以简单地指向我下载的curl源包中的include目录,而不必担心目标体系结构吗?如果是,这是否意味着我的第一个问题无关紧要?
>假设我想静态链接到库.在发生这种情况之前,是否需要为目标ARM平台编译此静态库?或者我可以直接使用我系统上安装的静态库(希望交叉编译过程能够处理业务)吗?
>如果我决定动态链接到库,唯一的要求是目标系统将此库编译为ARM并安装在ARM板上的一个LD_LIBRARY_PATH目录中,我是否正确?

谢谢您的帮助.

解决方法

>始终使用目标标题.它们可能与您的主机标头不同.编译器应该已经将它们作为标准问题的默认包含路径的一部分,例如libc. >您需要使用交叉编译器将cURL构建到虚假的“目标”系统目录中,并使用cURL在此目标目录中构建应用程序.由于您还需要一个cURL库,您必须使用交叉编译器.对于非交叉编译友好的编译(例如构建程序并在编译过程中运行),您将需要修改构建过程.有时fakeroot可能有助于脏构建系统. >您不能随意将静态库用于系统中的其他体系结构.它们必须由交叉编译器构建. >不正确.图书馆通常必须存在.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读