首页资源分类嵌入式处理器ARM MCU > c语言开源代码移植方法举例

c语言开源代码移植方法举例

已有 445185个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签:c语言开源代码移植方法举例

分    享:

文档简介

c语言开源代码移植方法举例

文档预览

一、移植开源软件需要考虑以下问题: 1. 搜集下载 我们需要找到我们想要的软件,先通过以下网站或google搜索 http://wiki.ubuntu.org.cn/Qref/Apps https://github.com/ https://sourceforge.net/ https://www.gentoo.org/ 2. 编译依赖: 依赖问题是移植开源软件中比较麻烦的一点,我们要考虑编译工具、软件版本、软件相互依赖等问题。由于此问题有时需要大量时间测试,所以可以先通过以下方法一小技巧解决,如果方法一不能解决再寻找其它方法。 3. 编译方法 每种开源软件的作者不同,所以有可能编译方法有所不同。 但操作稍微复杂的一般都会提供编译示例。 但我们还是可以通过方法一小技巧减小难度。 但大部分编译流程都为: 1. ./configure 2. make 3. make install 二、keepalived举例: 方法一:利用gentoo软件库移植 首先,大家可先熟悉下gentoo系统,在对gentoo系统有所了解后,会发现移植常见的软件包会变得非常简单。 在对gentoo了解后会发现,gentoo有一个其它发行版都没有的功能,就是源代码包软件管理系统portage。这有点像ubuntu的apt-get系统。但所有安装的包都将是以源代码方式安装。并且gentoo基本支持所有linux支持的硬件体系环境。 有了这个系统,我们移植软件完全可以参考portage。我们甚至稍加diy就可使我们的开发板安装庞大的桌面系统等。如果是手动解决桌面系统依赖,有可能一个月也安装不成功,但有了gentoo这有可能是一条命令的事。 详细的gentoo软件安装和介绍可参考: http://www.dnsnat.com/forum.php?mod=viewthread&tid=1175 简单操作流程为: 1. 在gentoo系统下执行emerge -v keepalived demonelf@localhost[~]$sudo emerge -av keepalived Password: * IMPORTANT: 8 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. * Last emerge --sync was 111d 7h 41m 52s ago. These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-cluster/keepalived-1.2.19::gentoo USE="ipv6 -debug -snmp" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild manifests >>> Emerging (1 of 1) sys-cluster/keepalived-1.2.19::gentoo * keepalived-1.2.19.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking keepalived-1.2.19.tar.gz to /var/tmp/portage/sys-cluster/keepalived-1.2.19/work >>> Source unpacked in /var/tmp/portage/sys-cluster/keepalived-1.2.19/work >>> Preparing source in /var/tmp/portage/sys-cluster/keepalived-1.2.19/work/keepalived-1.2.19 ... * Running eautoreconf in '/var/tmp/portage/sys-cluster/keepalived-1.2.19/work/keepalived-1.2.19' ... * Running aclocal ... [ ok ] * This package has a configure.in file which has long been deprecated. Please * update it to use configure.ac instead as newer versions of autotools will die * when it finds this file. See https://bugs.gentoo.org/426262 for details. * Running autoconf --force ... [ ok ] * Running elibtoolize in: keepalived-1.2.19/ >>> Source prepared. >>> Configuring source in /var/tmp/portage/sys-cluster/keepalived-1.2.19/work/keepalived-1.2.19 ... ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --with-kernel-dir=/usr --enable-vrrp --disable-debug --disable-snmp configure: loading site script /usr/share/config.site checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no 2. 参考以上编译参数,移植自己的软件。 3. 对于依赖问题和想知道详细的编译脚本,我们可以查看脚本文件: /usr/portage/sys-cluster/keepalived/keepalived-1.2.19.ebuild 此文件包含了完整的依赖软件信息,编译指令。 方法二:参考官方手册 例如keepalived目录下包含INSTALL文件 其中包含了一栏关系和编译方法。 方法三:常见的通用方法

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。