如何使MSVS识别bigobj标志?

时间:2019-06-10 18:12:36

标签: c++

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

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

我已经找到其他人遇到这个问题,但是我仍然无法弄清楚如何在我的代码中添加一行以使编译器认识到这一点。基于在线查找其他代码段,我尝试在代码顶部的include之后添加以下行:

#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"

我希望代码能够编译,但是不会。我还没有找到能准确告诉编译器应告诉我什么的解决方案。

1 个答案:

答案 0 :(得分:0)

您的答案在下面的链接中,您只需将 / 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