首页 > 解决方案 > 如何让 MSVS 识别 bigobj 标志?

问题描述

我正在 ANSYS Fluent 中构建一个用户定义函数,它调用我安装的 MSVS 2017 来编译代码。问题是我收到错误:

致命错误 C1128:节数超出目标文件格式限制:使用 /bigobj 编译

我发现其他人有这个问题,但我仍然无法弄清楚如何在我的代码中添加一行来让编译器识别这个问题。基于在线查找其他代码片段,我尝试在代码顶部的包含后添加以下行:

#include "udf.h"
#include "unsteady.h"
#include "dynamesh_tools.h"
ADD_DEFINITIONS(/bigobj)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")

但这给出了错误:

..\..\src\MY_UDF.c(10): error C2143: syntax error: missing ')' before '/'
..\..\src\MY_UDF.c(10): error C2143: syntax error: missing '{' before '/'
..\..\src\MY_UDF.c(10): error C2059: syntax error: '/'
..\..\src\MY_UDF.c(10): error C2059: syntax error: ')'

我不明白这些错误,因为这些错误是从其他人的工作代码中复制而来的。我也尝试过,从我在网上找到的另一个片段:

QMAKE_CXXFLAGS += -bigobj

但这给出了以下错误。

..\..\src\MY_UDF.c(9): error C2143: syntax error: missing '{' before '+='
..\..\src\MY_UDF.c(9): error C2059: syntax error: '+='

这是我的 udf 文件的顶部,它一直运行到我添加太多行并得到上面显示的错误。

#include "udf.h"
#include "unsteady.h"
#include "dynamesh_tools.h"

我希望代码能够编译,但事实并非如此。我还没有找到任何解决方案来准确显示如何告诉编译器它告诉我我应该告诉它什么。

标签: c++

解决方案


您的答案在下面的链接中,您只需将/bigobj添加到 Fluent 的makefile_nt.udf文件中!真是救命啊!

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5043c081-a317-4528-a02d-d4b6e6d21543/problem-with-bigobj-when-compiled-by-other-software?forum=msbuild


推荐阅读