invalid configuration x86_64-unknown-linux-gnu' machine x86_64-unknown' not recognized

本文记录了在安装软件过程中遇到的 invalid configuration 错误,并提供了三种解决方案,包括替换配置文件、使用脚本修复及调整 configure 参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前两天在装机器软件的时候,
出现了下面的错误,

invalid configuration x86_64-unknown-linux-gnu' machine x86_64-unknown' not recognized

在网上查了半天,解决方案有三个:

1. 把 /usr/share/libtool/config.guess 覆盖到相关软件自带的config.guess 
把 /usr/share/libtool/config.sub 覆盖到相关软件自带的config.sub 
./configure --enable-shared --enable-static

但是由于我的机器里没有/usr/share/libtool/config.sub文件,所以再试第二个。


2. 下载一个script, 位置是http://www.pc-freak.net/bshscr/fix_x86_64-unknown-linux-gnu.sh

然后执行这个script就可以了。


由于我的机器不能这样,所以还能第三个。


3. 然后下面的命令

 ./configure --build=x86_64

然后就可以了。



### 解决 `Invalid configuration 'aarch64-linux-gnu': machine 'aarch64' not recognized` 错误 在交叉编译 SQLite 3.22.0 时,如果遇到 `Invalid configuration 'aarch64-linux-gnu': machine 'aarch64' not recognized` 错误,通常是因为配置脚本未能正确识别目标架构。以下是解决问题的详细方法。 #### 问题分析 错误的核心在于 `./configure` 脚本无法识别 `aarch64-linux-gnu` 配置[^1]。这可能是由于以下原因之一: - 配置脚本未更新以支持 `aarch64` 架构。 - 缺少必要的工具链或环境变量设置。 #### 解决方案 ##### 方法一:更新配置脚本 SQLite 的 `./configure` 脚本依赖于 `config.sub` 和 `config.guess` 文件来识别目标架构。如果这些文件过时,则可能导致无法识别 `aarch64-linux-gnu`。 解决方法是下载最新版本的 `config.sub` 和 `config.guess` 文件,并替换到 SQLite 源码目录中: ```bash wget https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -O config.sub wget https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -O config.guess ``` 完成替换后,重新运行 `./configure` 命令。 ##### 方法二:手动指定工具链路径 确保交叉编译工具链已正确安装,并通过环境变量显式指定工具链路径。例如: ```bash export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export AR=aarch64-linux-gnu-ar export RANLIB=aarch64-linux-gnu-ranlib export STRIP=aarch64-linux-gnu-strip ``` 随后运行以下命令进行配置: ```bash ./configure --host=aarch64-linux-gnu --prefix=/path/to/install \ --disable-tcl --enable-shared --enable-threadsafe ``` ##### 方法三:检查工具链是否完整 如果工具链不完整或路径配置错误,也可能导致上述错误。验证工具链是否可用: ```bash aarch64-linux-gnu-gcc --version ``` 如果工具链不可用,请重新安装或配置正确的交叉编译工具链。 #### 示例代码 以下是完整的交叉编译流程示例: ```bash # 下载并解压 SQLite 源码 wget https://www.sqlite.org/2018/sqlite-autoconf-3220000.tar.gz tar xvf sqlite-autoconf-3220000.tar.gz cd sqlite-autoconf-3220000 # 更新 config.sub 和 config.guess wget https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -O config.sub wget https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -O config.guess # 设置交叉编译工具链 export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export AR=aarch64-linux-gnu-ar export RANLIB=aarch64-linux-gnu-ranlib export STRIP=aarch64-linux-gnu-strip # 配置交叉编译环境 ./configure --host=aarch64-linux-gnu --prefix=/path/to/install \ --disable-tcl --enable-shared --enable-threadsafe # 编译与安装 make make install ``` #### 注意事项 - 确保工具链路径正确且环境变量已正确设置。 - 如果仍无法识别目标架构,可以尝试使用 `--build` 参数明确指定构建系统类型[^2]。 - 在嵌入式系统中,建议启用线程安全模式(`--enable-threadsafe`)以避免多线程环境下的潜在问题。 ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值