buildroot重新编译package

转载:

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3759058&ordertype=1

最近使用buildroot制作编译环境,文件系统。使用过程当中有许多注意点。今天的一点注意记录如下:
使用buildroot则样重新编译某一个包。比如说我们在某一个包里修改了代码,怎么重新编译呢。
我使用的是buildroot-2012-02版本。我的文件系统里要使用vsftpd,于是在buildroot根目录下make menuconfig的时候。选择编译vsftpd。但是我的vsftpd需要添加一点自己的东西。
添加了以后,开始回到根目录make,怎么都不编译。后来仔细阅读buildroot/doc目录下的文档,才把问题解决。所以大家如果对buildroot有任何问题,基本在doc目录下都能得到满意答复。

我的解决方法是这样的:
进入buildroot/output/build/vsftpd-2.3.4目录,
然后进入这个目录。按自己的要求修改文件,然后删除这个目录下的.stamp_built和.stamp_target_installed.然后回到这个
buildroot根目录下make。buildroot会自动重新编译vsftpd并且拷贝到文件系统。
buildroot/output/build/vsftpd-2.3.4这个目录下除了上面提到的两个文件还有类似的4个:
.stamp_configured, .stamp_downloaded, .stamp_patched,.stamp_extracted
其实每个工具包里都有这样的几个文件,这几个文件主要控制这个工具包的下载,解压,打包,配置,编译,安装。而根据我们的需要是要修改然后重新编译,安装即可。所以删除.stamp_built和.stamp_target_installed就可以啦。然后编译完了再进去看看。
这两个文件又产生啦,如果我们仅仅是修改了文件,而没有删除这两个文件是不会编译的。

主要参考的是doc目录下understanding how to rebuild packages的这一段内容。

这是2012-7-16下午重新写的。上午写的有有点误导别人。看了下好像有30多人已经阅读过。对这部分人说声:实在对不起啊。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在buildroot编译单独的软件包,可以通过以下步骤: 1. 确定需要编译的软件包名称及版本号; 2. 在buildroot目录下运行make menuconfig命令,进入配置菜单; 3. 选择Target packages -> Generic options -> Selected package,并输入需要编译的软件包名称; 4. 保存配置,并退出菜单; 5. 在buildroot目录下运行make命令,即可开始编译指定的软件包。 ### 回答2: 在使用buildroot进行嵌入式系统的构建时,我们有时会需要对个别软件包进行单独编译,这种情况下使用buildroot的make命令无法满足需要。此时可以使用buildroot中提供的br2-external工具和make命令来进行单独的软件包编译。 步骤如下: 1.创建一个新的目录作为单独编译的软件包的存放路径,路径的名称可以任意起名。 2.使用br2-external工具将目录添加到外部编译目录列表中,可以使用命令“make BR2_EXTERNAL=/path/to/your/devel tree menuconfig”打开配置菜单进行编辑,也可以在.buildroot文件中添加“BR2_EXTERNAL=/path/to/your/devel”进行配置。 3.在目录中创建一个自定义软件包的配置文件,配置文件的命名规则为"package-name.mk",其中包含了软件包相关的编译、安装、配置等信息。配置文件的内容遵循buildroot的Makefile语法规则,具体可以参考buildroot提供的例子。 4.运行make命令进行单独软件包的编译。执行命令“make package-name”即可编译指定软件包。如果需要重新编译,可以执行命令“make package-name-rebuild”。 5.编译完成后,在目录下的output目录中会生成软件包的二进制文件和相关的构建信息。 需要注意的是,在单独编译软件包时,使用的buildroot版本和已经编译完成的版本必须一致,否则会发生编译错误。 除了通过br2-external工具进行单独编译外,也可以将需要编译的软件包加入到buildrootpackage目录中,然后使用make menuconfig命令进行配置和编译。但是这样会增加buildroot整体的编译时间和复杂度,因此建议仅在必要时使用。 ### 回答3: Buildroot 是一个工具链,可以帮助我们在嵌入式系统上快速构建 Linux 操作系统。对于 Buildroot 编译过程中默认没有包含的软件包,我们可以通过添加第三方的软件包或自己编写软件包的方式来实现。下面我们来说一下如何在 Buildroot 中单独编译一个软件包。 1. 接入软件包 将需要编译的软件包添加到 Buildrootpackage 目录下,可以使用 git clone 的方式,如 git clone https://github.com/xxxxxx.git package/xxxxxx。 2. 配置软件包 配置需要编译的软件包的编译选项。在 Buildroot 中,每个软件包都有自己的配置文件,通常位于 package/xxxxxx/Config.in 中。我们可以通过修改 Config.in 文件中的选项来配置需要编译的软件包,如选择编译方式(静态库或动态库)、编译参数等。 3. 构建软件包 构建软件包有两种方式: (1)使用 Buildroot 管理工具(menuconfig 或 make menuconfig)进行编译。运行 make menuconfig,选择需要编译的软件包,将状态设置为 "y",然后保存退出。再运行 make 或 make xxxxx(xxxxx 代表需要编译的软件包名),就可以开始编译。 (2)直接运行 make xxxxx(xxxxx 代表需要编译的软件包名),直接编译指定软件包。这种方式适用于我们只需要快速编译一个特定的软件包,不需要重新编译整个系统。 4. 安装软件包 在软件包编译完成后,我们需要将编译好的二进制文件、库文件等安装在目标系统上。可以通过两种方式来安装软件包: (1)使用 Buildroot 管理工具进行安装。运行 make menuconfig,在 Target Packages 选项中选择需要安装的软件包,状态设置为 "y",然后保存退出。运行 make,系统会自动将编译好的软件包安装到目标系统中。 (2)手动将编译好的软件包安装到目标系统中。可以使用 scp 命令将编译好的软件包传输到目标系统上,然后在目标系统上使用 tar 命令解压安装。 总之,通过 Buildroot 单独编译软件包的过程包括接入软件包、配置软件包、构建软件包和安装软件包,根据需要选择对应的方式即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值