sonicdoe/detect-character-encoding安装编译失败求助
解决detect-character-encoding编译失败的问题
嘿,看了你的报错日志,核心问题一眼就能找到:
make: g++: No such file or directory
你的全新Ubuntu系统还没装C++编译工具链,这是node-gyp编译原生模块(比如依赖ICU的detect-character-encoding)必须的基础依赖。旧电脑能正常编译,是因为之前已经配置过这些工具啦。
第一步:安装基础编译工具
打开终端,先更新软件源,再安装编译必备的包:
sudo apt update sudo apt install build-essential
这个build-essential包会自动帮你装好gcc、g++、make这些核心编译工具,不用一个个单独装。
第二步:确认工具安装成功
跑下面的命令看看工具是不是装好了:
g++ --version make --version
如果能正常输出它们的版本号,那就没问题了。
第三步:重新安装项目依赖
先删掉项目里的旧依赖和锁文件,再重新安装:
rm -rf node_modules package-lock.json yarn.lock yarn install # 用npm的话就换成 npm install
补充小提示
你之前猜测和ICU有关,其实ICU编译失败只是工具缺失导致的连锁反应,并不是ICU本身需要特殊配置。等编译工具装齐了,detect-character-encoding依赖的ICU库自然能正常编译。
要是做完上面的步骤还有问题,可以检查下Python版本——有些旧版原生模块可能依赖Python 2.7,你可以装一下:
sudo apt install python2
然后用命令指定工具链用的Python版本:
# yarn的话 yarn config set python /usr/bin/python2 # npm的话 npm config set python /usr/bin/python2
内容的提问来源于stack exchange,提问作者Diogo Domanski
相关产品推荐
相关产品推荐

