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

Win11下Msys2中Clang19.1.7编译CPP项目遇oldnames.lib缺失错误求解决

解决Msys2中Clang链接oldnames.lib缺失的问题

1. 安装对应Windows SDK兼容组件

在Msys2的UCRT64终端(Clang推荐使用该环境)执行以下命令,安装MinGW/UCRT的CRT组件,oldnames.lib的兼容实现包含在这些包中:

pacman -S mingw-w64-ucrt-x86_64-winpthreads-git mingw-w64-ucrt-x86_64-crt

2. 验证并配置库路径

  • 执行echo $LIBRARY_PATH,确认输出包含/ucrt64/lib路径
  • 如果路径缺失,手动添加环境变量:
export LIBRARY_PATH=/ucrt64/lib:$LIBRARY_PATH

可将该命令写入~/.bashrc或~/.zshrc,实现终端启动时自动配置。

3. 编译时显式指定CRT类型

编译命令中添加参数,强制Clang使用MinGW/UCRT的CRT,避免链接器查找MSVC的旧库:

  • 使用libc++的命令示例:
clang++ -o your_program your_code.cpp -stdlib=libc++
  • 使用GNU CRT的命令示例:
clang++ -o your_program your_code.cpp -lgcc -lmingw32

4. 修复包安装异常(若上述步骤无效)

如果包缓存或安装不完整,执行以下命令更新并重装Clang相关包:

pacman -Syu
pacman -S --overwrite '*' mingw-w64-ucrt-x86_64-clang

补充:oldnames.lib是MSVC为兼容旧代码提供的库,Msys2环境下的Clang应优先使用MinGW/UCRT提供的CRT实现,无需依赖MSVC原生组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:42:02