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

CMake+MinGW编译Assimp添加/bigobj提示无此文件或目录如何解决

错误原因

你使用的/bigobj是MSVC编译器专属的大对象文件编译参数,MinGW使用的GCC编译器不识别该格式参数,所以会抛出/bigobj: No such file or directory错误。

解决方法

方案1:使用MinGW对应大对象编译参数

MinGW环境下对应大对象文件的编译参数为-Wa,-mbig-obj,CMake中正确的配置写法如下:

# 全局生效配置
if(MINGW)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
endif()

如果只需要给assimp目标添加该参数,更干净的写法是:

# 仅对assimp目标生效
if(MINGW)
    target_compile_options(assimp PRIVATE -Wa,-mbig-obj)
endif()

注意:不要使用add_definitions添加编译选项,该指令的作用是添加预处理器定义,本身就不适合用来传递编译参数。

方案2:关闭不需要的Assimp导入模块(更推荐)

你遇到的超大obj文件是Assimp的IFC格式导入模块生成的,如果你不需要支持IFC格式模型,直接关闭该模块即可从根源解决问题,不需要添加任何额外编译参数,CMake配置如下:

set(ASSIMP_BUILD_IFC_IMPORTER OFF CACHE BOOL "关闭IFC格式导入支持" FORCE)
额外注意事项
  • 如果是32位MinGW编译仍然报错,可尝试升级MinGW版本到8.1.0以上,旧版本GCC对-mbig-obj的支持存在缺陷。
  • 配置完成后需要删除CMake缓存重新生成编译脚本,避免旧配置残留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:24:05