编译GLib时提示 error: *** No iconv() implementation found in C library 的解决方法

本文介绍了一种解决在编译GLib过程中因libiconv手动编译而导致configure找不到iconv库的问题的方法。通过设置环境变量LDFLAGS并指定正确的libiconv路径,可以有效解决该问题。
在编译GLib时,如果libiconv是手动编译到指定目录的,会导致configure无法找到iconv库,执行configure前,可以立刻解决解决烦恼
setenv LDFLAGS '-L/usr/local/libiconv1.13/lib'

### 解决 CentOS 7.9 GLIBC 升级后出现的 `make: *** No targets specified and no makefile found. Stop.` 错误 在 CentOS 7.9 操作系统中升级 GLIBC 后,如果遇到 `make: *** No targets specified and no makefile found. Stop.` 错误,通常是由于以下原因之一导致的: 1. 缺少必要的编译工具链和依赖项。 2. 当前目录未包含有效的 `Makefile` 文件或源代码配置不正确。 以下是详细的解决方案: --- #### 确保安装了完整的开发工具链 在 CentOS 7.9 中,如果缺少 GCC 编译器及其相关组件,可能会导致 `make` 命令无法正常工作。可以通过以下命令安装所需的开发工具和依赖库[^2]: ```bash sudo yum groupinstall "Development Tools" -y sudo yum install gcc gcc-c++ make -y ``` --- #### 验证当前目录是否包含有效的 `Makefile` 运行 `make` 命令,必须确保当前目录存在有效的 `Makefile` 文件。可以通过以下命令检查: ```bash ls -l Makefile ``` 如果未找到 `Makefile` 文件,则需要重新生成或确认是否进入正确的源代码目录。通常,源代码目录中会提供一个 `configure` 脚本,用于生成 `Makefile` 文件。执行以下命令生成 `Makefile`[^3]: ```bash ./configure --prefix=/desired/install/path ``` --- #### 清理之前的编译残留并重新构建 如果之前尝试过编译但失败,可能需要清理残留文件以避免冲突。使用以下命令清理并重新构建: ```bash rm -rf * ../configure --prefix=/desired/install/path make -j$(nproc) ``` --- #### 安装必要的依赖库 某些项目可能需要额外的依赖库才能成功编译。例如,在编译 Emacs 或其他复杂软件,可能需要安装以下依赖库[^4]: ```bash sudo yum install glib* gtk* ncurses* libXpm* giflib* libjpeg* libtiff* libpng* -y ``` --- #### 示例流程 以下是一个完整的流程示例,涵盖从验证环境到解决 `make` 错误的所有步骤: ```bash # 确保安装了开发工具链 sudo yum groupinstall "Development Tools" -y sudo yum install gcc gcc-c++ make -y # 验证当前目录是否包含 Makefile ls -l Makefile # 如果缺少 Makefile,运行 configure 脚本生成 ./configure --prefix=/desired/install/path # 清理之前的编译残留并重新构建 rm -rf * ../configure --prefix=/desired/install/path make -j$(nproc) # 安装必要的依赖库(根据项目需求) sudo yum install glib* gtk* ncurses* libXpm* giflib* libjpeg* libtiff* libpng* -y ``` --- ### 注意事项 - 确保当前目录为正确的源代码目录,并且包含所有必要的文件。 - 如果 `./configure` 脚本执行失败,请检查错误日志以确定缺失的依赖项。 - 在生产环境中升级 GLIBC 需格外谨慎,建议在测试环境中先行验证[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值