1. 前言

本人初涉OpenSees二次开发,在编译OpenSees源代码时遇到一些困难,这里把编译的过程记录下来,希望能对以后遇到困难的朋友有一些帮助。

2. 编译工作准备

编译工具:Visual Studio 2019 社区版,注册账号就可以免费使用。
OpenSees源代码:OpenSees 3.0.0 在Github上下载对应的版本。
Fortran: Intel Parallel Studio XE Cluster Edition 2020
TCL:TCL 8.6版本

3. 编译过程

Step 1:首先安装VS 2019,Fortran和TCL 8.6,这里注意一下TCL安装到目录C:\Program Files\TCL(这是源代码默认的包含目录和库目录地址)中,这样就不用在后面的编译过程为项目设置包含目录和库目录了。

Step 2:使用VS 2019打开OpenSees的解决方案(源代码下载目录–win64–OpenSees.sln),将解决方案下的OpenSees项目设置为启动项(右键单击项目–设置为启动项)这里根据自己的需要选择编译Open Sees,OpenSeesPy,OpenSeesTk。

Step 3:设置包含目录和库目录—由于第一部中已经把TCL安装到对应的目录,不需要再对OpenSees以外的项目设置包含目录和库目录。但是仍然需要对OpenSees项目设置Fortran语言的库目录,右键OpenSees项目–属性–VC++目录–库目录–编辑–新建–添加Fortran的库目录,这里需要说明一下,也是笔者花很长时间才解决的事情,最初没有设置Fortran的库目录,编译OpenSees时提示错误信息–无法打开输入文件“ifconsol.lib”,于是在电脑中搜索该文件,有两个文件夹有这个文件,ia32_win和intel64_win,笔者最开始将ia_32win设置为库目录,再编译OpenSees时提示错误信息为:

错误 LNK2001 无法解析的外部符号 for_emit_diagnostic

都是LNK2001和LNK2019,最终把库目录设置为intel64_win后,编译成功。
这里特别说明一下:当在编译过程中错误信息提示–无法打开“xxx.h”,是因为没有设置对应文件所在的包含目录,在电脑中搜索文件所在的目录,然后再对应项目中设置包含目录。
当在编译过程中错误信息提示–无法打开“xxx.lib”,是因为没有设置对应文件所在的库目录,在电脑中搜索文件所在的目录,然后再对应项目中设置库目录。
如果在电脑中搜索不到对应的文件,说明电脑中没有安装OpenSees编译所需的环境,重新安装TCL,Fortran。