vtk编译时出现 cl : 命令行 error D8021: 无效的数值参数“/Wa,-mbig-obj”

问题1

  vtk9.3.0使用vs2017编译的过程中出现如标题所示的错误,为两个项目:CommonCore和CommonMisc,搜索所有-mbig的代码,定位CMakeLists.txt文件中的

"-Wa,-mbig-obj"

均替换为

/bigobj

即将代码:

set_property(SOURCE vtkUnsignedLongLongArray.cxx
                    vtkUnsignedLongArray.cxx
                    vtkIntArray.cxx
                    vtkUnsignedIntArray.cxx
                    vtkDoubleArray.cxx
                    vtkFloatArray.cxx
                    vtkLongArray.cxx
                    vtkShortArray.cxx
                    vtkSignedCharArray.cxx
                    vtkUnsignedCharArray.cxx
                    vtkCharArray.cxx
                    vtkLongLongArray.cxx
                    vtkUnsignedShortArray.cxx
                    APPEND PROPERTY COMPILE_OPTIONS "-Wa,-mbig-obj")

替换为:

set_property(SOURCE vtkUnsignedLongLongArray.cxx
                    vtkUnsignedLongArray.cxx
                    vtkIntArray.cxx
                    vtkUnsignedIntArray.cxx
                    vtkDoubleArray.cxx
                    vtkFloatArray.cxx
                    vtkLongArray.cxx
                    vtkShortArray.cxx
                    vtkSignedCharArray.cxx
                    vtkUnsignedCharArray.cxx
                    vtkCharArray.cxx
                    vtkLongLongArray.cxx
                    vtkUnsignedShortArray.cxx
                    APPEND PROPERTY COMPILE_OPTIONS /bigobj)

对于CommonMisc中的代码,将CMakeLists.txt中的相关代码注释掉并添加新的代码,如下:
原代码注释掉:

/原代码
# ExprTk uses lots of templates and exceeds object file limits
# if (MINGW AND NOT ANDROID) # MINGW is set when cross-compiling for ANDROID, see issue https://gitlab.kitware.com/cmake/cmake/-/issues/22647
#  set_property(SOURCE vtkExprTkFunctionParser.cxx APPEND
#    PROPERTY
#      COMPILE_FLAGS "-Wa,-mbig-obj")

#  set_property(SOURCE vtkExprTkFunctionParserEx.cxx APPEND
##    PROPERTY
#      COMPILE_FLAGS "-Wa,-mbig-obj")
# endif ()

添加新的代码:

替换代码
if (MSVC)
  set_property(SOURCE vtkExprTkFunctionParser.cxx APPEND
    PROPERTY
      COMPILE_OPTIONS /bigobj)

  set_property(SOURCE vtkExprTkFunctionParserEx.cxx APPEND
    PROPERTY
      COMPILE_OPTIONS /bigobj)
endif ()
问题2

LNK2005 "public: __cdecl vtkConstantImplicitBackend::vtkConstantImplicitBackend(char)
参考链接:VTK9.3 编译debug链接问题_vtk9.3.0编译-CSDN博客
 搞了两天,debug终于编译成功(2024.02.17),为什么vtk公司不把代码编译好给我们用呢?等今天两个版本均编译成功后,会传到git,后续放链接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值