编译andriod4.2.2 遇到的问题

本文介绍了在编译Android源码过程中遇到的各种问题及其解决方案,包括依赖库安装、解压错误处理及编译完成后系统的检查。
yum install flex

libc6-dev-i386
libc6-dev-i386 安装不了 改安装
 yum -y install glibc-devel.i686(i386)

make: *** No rule to make target `out/target/product/tiny4412/obj/SHARED_LIBRARIES/libgabi++_intermediates/export_includes', needed by `out/target/product/tiny4412/obj/SHARED_LIBRARIES/libicuuc_intermediates/import_includes'.  Stop.
make: *** Waiting for unfinished jobs....

上面的原因是 android 源码包 解压不正确 时没有处理

解压时 出现 如下问题 没有解决

android-4.2.2_r1/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/libexec/gcc/arm-linux-androideabi/4.6.x-google/cc1plus

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
[root@localhost android]#

tar解压出现 invalid compressed data--format violated
原因可能时 android 源码包已经损坏 ,原因可能是在用 u 盘拷贝时 文件损坏
使用 mount 挂载上 笔记本上的 redhat 下的 源码包 重行解压发现 没有任何解压错误,重新编译
android 源码 发现 上面的错误 没有再次出现。

缺少 下面的 库 安装上就可以了

 yum installlibz.so.1


编译完成 出现的界面


    Size: 685768704
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 6976
    Inode size: 256
    Journal blocks: 2616
    Label:
    Blocks: 167424
    Block groups: 6
    Reserved block group size: 47
Created filesystem with 1105/41856 inodes and 52062/167424 blocks
+ '[' 0 -ne 0 ']'
Running:  simg2img out/target/product/tiny4412/obj/PACKAGING/systemimage_intermediates/system.img out/target/product/tiny4412/obj/PACKAGING/systemimage_intermediates/unsparse_system.img
Running:  e2fsck -f -n out/target/product/tiny4412/obj/PACKAGING/systemimage_intermediates/unsparse_system.img
e2fsck 1.41.14 (22-Dec-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
out/target/product/tiny4412/obj/PACKAGING/systemimage_intermediates/unsparse_system.img: 1105/41856 files (0.0% non-contiguous), 52062/167424 blocks
Install system fs image: out/target/product/tiny4412/system.img
out/target/product/tiny4412/system.img+ maxsize=700123776 blocksize=4224 total=203751884 reserve=7075200
[root@localhost android-4.2.2_r1]#






### 如何使用 Mingw32 编译 FFmpeg 4.2.2 #### 准备工作 确保已经安装好必要的依赖项以及 MinGW 工具链。对于 Ubuntu 用户来说,可以通过如下命令来设置 MinGW 环境: ```bash sudo apt-get update && sudo apt-get install mingw-w64 ``` 接着下载指定版本的 FFmpeg 源码包并解压至合适位置。 #### 下载源码 访问官方发布的页面获取所需版本的压缩包链接,并利用 `wget` 命令下载特定版本(这里是 4.2.2)。之后解开 tarball 文件以便后续操作[^2]。 ```bash wget -c http://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2 tar jxf ffmpeg-4.2.2.tar.bz2 cd ffmpeg-4.2.2/ ``` #### 配置编译选项 进入解压后的目录后运行 configure 脚本来设定交叉编译为目标平台 Windows 的参数。这里给出一组推荐使用的配置选项作为参考[^4]: ```bash ./configure \ --target-os=mingw32 \ --cross-prefix=i686-w64-mingw32- \ --arch=x86_32 \ --enable-shared \ --disable-static \ --disable-yasm \ --disable-doc \ --disable-programs \ --extra-cflags="-I/usr/i686-w64-mingw32/include" \ --extra-ldflags="-L/usr/i686-w64-mingw32/lib" ``` 上述指令中包含了几个重要的开关: - `--target-os`: 设置目标操作系统为 Windows (MinGW32). - `--cross-prefix`: 明确指定了用于构建过程中的前缀名. - `--arch`: 设定架构类型. - `--enable-shared`, `--disable-static`: 只生成共享库而不创建静态库. - `--disable-yasm`, `--disable-doc`, `--disable-programs`: 关闭汇编优化、文档生成和支持程序以减少最终产物大小. #### 开始编译与安装 当所有的准备工作都已完成以后就可以正式开始了。先执行 Makefile 中定义好的规则来进行实际编译动作;再通过 make install 将结果部署到本地文件系统内。 ```bash make -j$(nproc) make install ``` 如果一切顺利的话,在当前用户的 HOME 目录下的 bin 子路径里应该能找到新近制作出来的可执行文件及其关联资源了。 #### 解决常见问题 有时可能会遇到一些错误提示或警告信息影响正常流程进展。下面列举了几种常见的状况及对应的处理方式: 1. **缺少依赖库**: 如果发现某些外部功能模块无法正常使用,则可能是因为少了相应的第三方支持组件。此时应当参照官方网站上的指导补充缺失部分。 2. **路径冲突**: 当存在多个不同版本共存的情况时容易引发命名空间污染现象。建议采用虚拟环境隔离措施规避此类风险。 3. **权限不足**: 对于非 root 权限账户而言,默认情况下是没有权利修改受保护区域内的任何东西的。因此务必确认所有涉及写入的地方均具备适当许可级别。 4. **网络连接异常**: 若是在拉取远程仓库数据阶段出现问题,可以尝试更换镜像站点或是调整防火墙策略加以应对。 5. **硬件性能瓶颈**: 复杂程度较高的项目往往消耗较多计算资源,特别是在多线程模式下更是如此。合理规划任务调度计划有助于提高效率降低延迟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值