mksquash_lzma-3.2 编译问题

本文解决mksquash_lzma-3.2编译时出现的未定义引用错误,通过调整Makefile文件中的LDLIBS设置并正确链接zlib库,最终实现成功编译。

mksquash_lzma-3.2 编译问题

今天在编译mksquash_lzma-3.2的时候出现了如下问题:

 

[plain]  view plain copy
 
  1. /home/test/RT288x_SDK/toolchain/mksquash_lzma-3.2/lzma443/C/7zip/Compress/LZMA_C/libunlzma.a(uncomp.o):在函数‘sqlzma_un’中:  
  2. uncomp.c:(.text+0x67):对‘inflateReset’未定义的引用  
  3. uncomp.c:(.text+0xa7):对‘inflate’未定义的引用  
  4. uncomp.c:(.text+0x1b2):对‘zError’未定义的引用  
  5. /home/test/RT288x_SDK/toolchain/mksquash_lzma-3.2/lzma443/C/7zip/Compress/LZMA_C/libunlzma.a(uncomp.o):在函数‘sqlzma_init’中:  
  6. uncomp.c:(.text+0x3f0):对‘inflateInit_’未定义的引用  
  7. collect2: 错误: ld 返回 1  
  8. make[1]: *** [unsquashfs] 错误 1  

 

首先,需要确保安装了zlib库。zlib1g,zlib1g-dbg,zlib1g-dev

其次,打开安装目录下的squashfs3.2-r2/squashfs-tools,找到Makefile文件,找到

 

[plain]  view plain copy
 
  1. LDLIBS += -lz -L${LzmaAlone} -L${LzmaC}  
把 -lz 去掉,成:

 

 

[plain]  view plain copy
 
  1. LDLIBS += -L${LzmaAlone} -L${LzmaC}  

 

然后在找到包含LDLIBS的两行,后边添上 -lz 即可

 

[plain]  view plain copy
 
  1. mksquashfs: LDLIBS += -lpthread -lunlzma_r -llzma_r -lstdc++ -lz  
  2. unsquashfs: LDLIBS += -lunlzma -lz  

 

./configure

make

make install

编译成功!
posted @ 2015-12-04 17:11 心灵捕手 阅读( ...) 评论( ...)   编辑 收藏
wxh@wxh-dt:~/tplink/PLATFORM$ git reset --hard error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/config.log': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/config.status': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/debug/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/lib/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/libtool': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/po/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/po/Makefile.in': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-alone_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-alone_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-arm.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-armthumb.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-auto_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_buffer_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_buffer_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_header_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_header_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-block_util.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-check.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-common.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-crc32_fast.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-crc32_table.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-crc64_fast.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-crc64_table.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-delta_common.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-delta_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-delta_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-easy_buffer_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-easy_decoder_memusage.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-easy_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-easy_encoder_memusage.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-easy_preset.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-fastpos_table.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_buffer_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_buffer_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_common.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_flags_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-filter_flags_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-hardware_cputhreads.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-hardware_physmem.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-ia64.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-index.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-index_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-index_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-index_hash.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lz_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lz_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lz_encoder_mf.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma2_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma2_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_fast.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma_encoder_optimum_normal.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-lzma_encoder_presets.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-outqueue.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-powerpc.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-price_table.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-sha256.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-simple_coder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-simple_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-simple_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-sparc.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_buffer_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_buffer_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_encoder_mt.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_flags_common.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_flags_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-stream_flags_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-tuklib_cpucores.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-tuklib_physmem.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-vli_decoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-vli_encoder.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-vli_size.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.deps/liblzma_la-x86.Plo': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.libs/liblzma.a': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/.libs/liblzma.so.5.2.2': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/liblzma/api/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/lzmainfo/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/scripts/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/xz/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/src/xzdec/Makefile': 权限不够 error: unable to unlink old 'toolchain/host_tools/xz-5.2.2/tests/Makefile': 权限不够 fatal: 不能重置索引文件至版本 'HEAD'。
最新发布
11-27
<think> 我们遇到了一个权限问题:在执行 `git reset --hard` 时,Git 报告“权限不够”(Permission denied),无法删除旧文件。 这通常是因为当前用户对列出的文件没有写权限。可能的原因包括: 1. 这些文件的所有者不是当前用户(例如,可能是以root用户创建的)。 2. 文件被其他进程占用(例如,正在运行的程序占用了某个文件)。 3. 文件系统权限设置问题(如只读文件系统或文件被设置为只读)。 解决方案: 1. 使用 `sudo` 提升权限执行命令(不推荐,因为可能破坏Git仓库的权限结构): sudo git reset --hard 但注意:使用sudo后,文件的所有者可能会变成root,导致以后普通用户操作时再次出现权限问题2. 手动更改文件权限,使当前用户有权修改这些文件: chown -R $USER:$USER . # 将当前目录及子目录的所有文件所有权改为当前用户(需要sudo权限执行) 或 chmod -R u+w . # 给当前用户添加写权限 然后再执行 `git reset --hard`。 3. 检查是否有进程占用了这些文件(例如,编译工具正在运行),关闭相关进程后再尝试。 4. 如果上述方法无效,可以尝试删除整个目录(注意备份),然后重新克隆仓库或从其他来源恢复文件。 重要提示:在执行任何权限修改或删除操作前,请确保已备份重要数据。 根据错误信息,问题主要集中在 `toolchain/host_tools/xz-5.2.2/` 目录下的文件。因此,也可以只对该目录进行权限修复: chmod -R u+w toolchain/host_tools/xz-5.2.2/ 然后再次运行 `git reset --hard`。 §§相关问题§§ 1. 如何安全地更改Git仓库中文件的权限以避免操作失败? 2. 在Linux中,如何查找并终止占用某个文件的进程? 3. 为什么使用sudo执行Git命令可能会导致后续权限问题? 4. 如果无法解决权限问题,除了重新克隆外还有什么替代方案? </think>### 问题分析 您在执行 `git reset --hard` 时遇到了一系列 **"权限不够" (Permission denied)** 错误。这表明当前用户对列出的文件没有写权限,常见原因包括: 1. **文件所有权问题**:文件可能由其他用户(如 `root`)创建或修改 2. **只读文件系统**:文件可能被设置为只读属性 3. **进程占用**:文件可能被其他进程锁定 4. **SELinux限制**:系统安全策略阻止了文件修改(常见于企业环境) ### 解决方案 #### 方法1:获取文件所有权(推荐) ```bash # 递归修改文件所有者(将your_username替换为实际用户名) sudo chown -R $USER:$USER . # 再次尝试重置 git reset --hard ``` #### 方法2:赋予写权限 ```bash # 递归添加用户写权限 sudo chmod -R u+w . # 再次尝试重置 git reset --hard ``` #### 方法3:强制重置(谨慎使用) ```bash # 使用sudo以root权限执行(可能影响文件权限) sudo git reset --hard ``` #### 方法4:检查文件占用 ```bash # 查找占用文件的进程(以Makefile为例) lsof toolchain/host_tools/xz-5.2.2/Makefile # 终止占用进程 sudo kill -9 <进程ID> ``` ### 关键注意事项 1. **优先使用`chown`而非`sudo git`**,避免破坏Git仓库权限结构 2. 错误中大量`*.Plo`文件是编译中间文件,可直接安全重置 3. 操作前建议备份重要文件: ```bash cp -a toolchain/host_tools/xz-5.2.2 ~/xz_backup ``` 4.问题持续,检查SELinux状态: ```bash sestatus # 显示Enforcing表示启用 sudo setenforce 0 # 临时关闭 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值