You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11下安装Charlock_holmes依赖报错求助

安装charlock_holmes gem时遇到ICU依赖错误的解决求助

错误详情

执行安装命令时出现以下错误:

$ gem install charlock_holmes -- --with-icui18nlib=icuin --with-icudatalib=icudt
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions with: '--with-icui18nlib=icuin --with-icudatalib=icudt'
This could take a while...
ERROR:  Error installing charlock_holmes:
        ERROR: Failed to build gem native extension.

    current directory: C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/charlock_holmes-0.7.7/ext/charlock_holmes
C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/site_ruby/3.1.0 extconf.rb --with-icui18nlib\=icuin --with-icudatalib\=icudt
checking for -licuin... no


***************************************************************************************
*********** icu required (brew install icu4c or apt-get install libicu-dev) ***********
***************************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby31-x64/bin/$(RUBY_BASE_NAME)
        --with-icu-dir
        --without-icu-dir
        --with-icu-include
        --without-icu-include=${icu-dir}/include
        --with-icu-lib
        --without-icu-lib=${icu-dir}/lib
        --with-icu-i18n-dir
        --without-icu-i18n-dir
        --with-icu-i18n-include
        --without-icu-i18n-include=${icu-i18n-dir}/include
        --with-icu-i18n-lib
        --without-icu-i18n-lib=${icu-i18n-dir}/lib
        --with-icu-i18n-config
        --without-icu-i18n-config
etc

已尝试的操作

  • 下载icu4c 71.1版本安装,并在安装gem时指定--with-icu-lib参数指向安装路径
  • 执行以下命令安装依赖后重试:
ridk exec pacman -S mingw-w64-x86_64-icu icu-devel icu
gem install charlock_holmes -- --with-icui18nlib=icuin --with-icudatalib=icudt

可行解决方案

针对Windows环境(RubyInstaller+MSYS2),按以下步骤操作:

  1. 激活MSYS2环境
    打开Ruby自带的终端(开始菜单 > Ruby 3.1-x64 > Start Command Prompt with Ruby),或手动执行ridk enable确保MSYS2环境生效。

  2. 重装适配架构的ICU库
    先清理已安装的可能不兼容的包,再安装正确的x64版本:

    ridk exec pacman -Rns mingw-w64-x86_64-icu icu-devel icu
    ridk exec pacman -S mingw-w64-x86_64-icu
    

    注:mingw-w64-x86_64-icu已包含编译所需的头文件和库,无需额外安装其他ICU相关包。

  3. 指定ICU路径安装gem
    找到MSYS2中ICU的默认安装路径(通常为C:\Ruby31-x64\msys64\mingw64),执行以下命令安装,无需手动指定单个库文件:

    gem install charlock_holmes -- --with-icu-dir=C:/Ruby31-x64/msys64/mingw64
    
  4. 版本兼容调整
    charlock_holmes 0.7.7与高版本ICU(如71.1)可能存在兼容问题,可尝试安装69.x版本的ICU:

    ridk exec pacman -U https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-icu-69.1-1-any.pkg.tar.zst
    

    安装完成后再执行步骤3的gem安装命令。

  5. 检查环境变量
    确保C:\Ruby31-x64\msys64\mingw64\bin在系统PATH中,避免编译时找不到库文件。


内容的提问来源于stack exchange,提问作者Hollow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:40:43