OpenSees编译Error C3861和C2039

OpenSees_Bian_Yi_Error_C3861_And_C2093

最近一直在尝试编译OpenSees的源代码,但是问题多多,并不是很容易解决,先一步一步的走,目前遇到最多的就是OpenSees在编译过程中出现Error C3861和C2039的错误,之所以记录下来是因为这个错误好多个版本都会出现,写这篇文章的时候版本已经是r5953了,相比于r5855,增加了win64的支持,但是还是会出很多的问题,记录记录。

环境:

OS: Windows 8.1 x64 ,
tcl: 8.5.16,
OPS_VERSION “2.4.5 (rev 5855)”
Microsoft Visual C ++ 2013 Ultimate
release x64

出现问题:

如下图所示:

OpenSees Error C2039

OpenSees Error C2039

这个问题主要是出现在std的命名空间中,在ElastomericX.cpp、LeadRubberX.cpp和ManzariDafalias.cpp中的max和min函数没有在std命名空间,这里在OpenSees的论坛上看到了一个比较好的解决办法。

在出问题的cpp文件中,宏定义部分增加:

并且在增加上部分定义之后,删除std::前缀,即可顺利通过编译。

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Are you human? Click the Apple...