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

Win10下Msys+MINGW64编译OpenFst出现libtool -no-undefined错误如何解决

问题原因分析
  • 配置阶段的cmp: command not found、diff: command not found报错是因为当前Msys环境未安装基础开发工具集,unistd.h不存在属于MinGW环境正常现象(该头文件为POSIX系统专属),这部分问题不会直接触发后续的构建终止错误。
  • 最终的libtool报错是MinGW环境编译共享库的通用限制:MinGW要求编译生成动态链接库(DLL)时必须指定-no-undefined链接参数,明确告知链接器编译阶段所有依赖符号都可被解析,不允许存在未定义符号留待运行时处理。
解决方案
  1. 先补装Msys基础依赖,解决配置阶段的工具缺失问题
    打开MINGW64终端执行命令:
    pacman -S base-devel mingw-w64-x86_64-toolchain
    根据提示完成安装即可获得cmp、diff等基础工具。

  2. 修正configure配置参数,添加必要的链接标识
    清空之前的编译缓存(可直接删除源码目录重新解压,或执行mingw32-make distclean),执行修正后的配置命令:
    ./configure --enable-grm --enable-far --enable-ngram-fsts MAKE="mingw32-make" LDFLAGS="-no-undefined"
    如果需要同时编译静态库,可额外添加--enable-static参数。

  3. 重新执行构建
    配置完成后执行构建命令即可正常编译:
    mingw32-make -j$(nproc)
    编译完成后可执行mingw32-make install完成安装。

注意事项

全程操作需要在MINGW64终端下执行,不要使用Msys默认终端,否则会出现环境变量不匹配导致的头文件、链接库找不到问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:09:00