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

MSVC命令行编译OpenBLAS未生成.obj文件,需适配Travis CI

解决MSVC命令行编译OpenBLAS时未生成.obj文件的问题

首先要明确:你执行的cmake -S ... -B ...命令只是完成了项目配置和构建系统文件生成(比如VS解决方案或者NMake Makefile),并没有实际编译代码——这就是为什么没有生成.obj文件的核心原因。下面是完整的命令行编译流程,适配你的需求并能直接集成到Travis CI工作流:

1. 激活MSVC命令行环境

先运行对应版本的vcvars64.bat初始化64位编译环境,以VS2019 Community为例:

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

Travis CI的Windows环境中,需先通过Chocolatey安装VS组件,再定位到对应vcvars脚本路径

2. 用CMake配置项目(优化版)

你之前的配置命令可以补充指定MSVC生成器避免歧义,同时添加-Wno-dev抑制面向开发者的警告:

cmake -S "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10" ^
      -B "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10\out" ^
      -G "Visual Studio 16 2019" ^
      -A x64 ^
      -Wno-dev
  • -G "Visual Studio 16 2019"明确指定生成VS2019格式的解决方案
  • -A x64强制生成64位目标文件
  • -Wno-dev会屏蔽你输出里的CMP0054这类开发警告

如果偏好NMake而非VS IDE构建,可改用如下配置命令:

cmake -S "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10" ^
      -B "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10\out" ^
      -G "NMake Makefiles" ^
      -DCMAKE_BUILD_TYPE=Release ^
      -Wno-dev

3. 执行实际编译(生成.obj和最终库)

这一步才是真正编译代码、生成.obj文件的环节:

若使用VS解决方案生成器

用cmake --build命令直接触发编译,指定配置和并行线程数:

cmake --build "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10\out" ^
      --config Release ^
      --parallel 4
  • --config Release指定编译Release版本(可替换为Debug)
  • --parallel 4用4线程加速编译,和你之前配置的线程数匹配

若使用NMake Makefiles

进入构建目录后运行nmake即可:

cd "C:\BLAS\OpenBLAS-v0.3.10\OpenBLAS-0.3.10\out"
nmake

关于你输出中警告的说明

  • CMAKE_FORCE_Fortran_COMPILER弃用警告:OpenBLAS的CMake脚本版本偏旧,这个警告不影响纯C代码的编译(你提到无C++代码),可以直接忽略;如果后续需要Fortran相关功能,再手动指定CMAKE_Fortran_COMPILER即可。
  • CMP0054开发警告:我们已经通过-Wno-dev参数屏蔽,无需额外处理。

将上述步骤整合到Travis CI的.travis.yml中,就能实现OpenBLAS的自动化编译啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:07:54