OpenSees开发(一)windows 上编译opensees (使用vs2005)
先贴一段opensees的介绍
“OpenSees的全称是Open System for Earthquake Engineering Simulation (地震工程模拟的开放体系)。它是由美国国家自然科学基金(NSF)资助、西部大学联盟“太平洋地震工程研究中心”(Pacific Earthquake Engineering Research Center,简称PEER)主导、加州大学伯克利分校为主研发而成的、用于结构和岩土方面地震反应模拟的一个较为全面且不断发展的开放的程序软件体系。”
简单的说,它是一套开源的土木工程计算实现的C++类库和框架。
下面介绍如何在windows平台利用vs2005编译opensees
1.下载源码:stable.ziparchive
2.下载tcl85
注意:1.请将安装目录从 c:/tcl 改为 c:\program files\tcl
2.如果你安装的是更高版本的activetcl,则可能需要更改头文件:
打开tcl.h,更改结构体的定义:
typedef struct Tcl_Interp {char *result; /* If the last command returned a string* result, this points to it. */void (*freeProc) _ANSI_ARGS_((char *blockPtr));/* Zero means the string result is statically* allocated. TCL_DYNAMIC means it was* allocated with ckalloc and should be freed* with ckfree. Other values give the address* of function to invoke to free the result.* Tcl_Eval must free it before executing next* command. */int errorLine; /* When TCL_ERROR is returned, this gives the* line number within the command where the* error occurred (1 if first line). */
} Tcl_Interp;
安装完之后需要重新启动计算机
3.解压源码包,打开OpenSees2.3.0\Win32\opensees.sln,让vs自动转换就行
解决方案中有3个exe项目,openSees,openSeesTk,quickmain,其中quickmain为一个简单的实例,代码与OpenSees2.3.0\EXAMPLES\Example1一样,顺便说一下该代码有误,将在之后的分析中解决
将quickmain设为启动项目,编译,出现链接错误
正在链接...
1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/FORCE”规范)
1>libm.lib(libm_error.obj) : error LNK2019: 无法解析的外部符号 _errno,该符号在函数 ___libm_error_support 中被引用
1>libifcore.lib(for_nt_open_proc.obj) : error LNK2001: 无法解析的外部符号 _errno
1>libifcore.lib(for_portlib.obj) : error LNK2001: 无法解析的外部符号 _errno
1>libifcore.lib(for_init.obj) : error LNK2019: 无法解析的外部符号 __pxcptinfoptrs,该符号在函数 _GETEXCEPTIONPTRSQQ 中被引用
1>.\..\..\bin/OpenSees.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>生成日志保存在“file://d:\Open Source\OpenSees2.3.0\Win32\obj\openSees\debug\BuildLog.htm”
1>openSees - 5 个错误,1 个警告
========== 生成: 0 已成功, 1 已失败, 23 最新, 0 已跳过 ==========
这需要将OpenSees2.3.0\Win32\VC2005errno.cpp加入工程中,不知道为什么原始的版本没有加,现在加入(注意按工程属性决定在*.cpp中是否添加预编译头文件),
再出现错误:
1>LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/FORCE”规范)
1>libifcore.lib(for_init.obj) : error LNK2019: 无法解析的外部符号 __pxcptinfoptrs,该符号在函数 _GETEXCEPTIONPTRSQQ 中被引用
1>.\..\..\bin/OpenSees.exe : fatal error LNK1120: 1 个无法解析的外部命令
参考:
http://opensees.berkeley.edu/community/viewtopic.php?t=4624
http://opensees.berkeley.edu/community/viewtopic.php?t=5462
将链接输入库中的libifcore.lib改为libifcoremt.lib,ok,链接成功。
接下去,对于主工程quickmain,有众多项目依赖性,导致每次重新生成该项目会将其它lib项目重新编译,徒增编译时间(假定lib项目源码永远不改动的情况下),于是将项目依赖性全部清除,出现链接错误,根据排除法确定问题所在,在quickmain项目的链接依赖项中加入handler.lib 链接成功。
完
OpenSees开发(一)windows 上编译opensees (使用vs2005)相关推荐
- 手把手教你在Windows上编译Swift工具链
2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-bu ...
- php在windows编译_在Windows上编译PHP
php在windows编译 Compiling PHP from source code is more commonly done on Unix-type systems. Those worki ...
- Windows上编译libpng
Windows上编译libpng 下载libpng 1.5.10并解压到[工作目录]/png/libpng-1.5.10 用CMake选择png/libpng-1.5.10目录并Configure: ...
- Windows上编译OpenEXR
Windows上编译OpenEXR 注意一定要使用1.0.1版本的ilmbase和1.6.1版本的openexr,其它版本的我测试过,OpenImageIO会编译失败. 解压ilmbase 1.0.1 ...
- 在windows上编译apr库apr-util库
在windows上编译apr库apr-util库 环境: win10.VS2015企业版.CMake3.18.2 一.下载apr相关库 1.1)expat:expat-2.1.0.tar.gz 1.2 ...
- 手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生
手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生 1.下载并安装 a)下载:delphicbuilder10_2_3_2631.iso ...
- 在Windows上编译FreeRDP
在Windows上编译FreeRDP FreeRDP是RDP协议的一个开源实现,像mstsc远程桌面也是RDP协议的一个实现微软把它预装在Windows系统中.今天我们就讲下如何在Windows下编译 ...
- 在Windows下编译OpenSSL(VS2005)【转】
如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...
- Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED
场景 Node-RED简介与Windows上安装.启动和运行示例: Node-RED简介与Windows上安装.启动和运行示例_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面是在Wi ...
最新文章
- Windows批处理脚本%1和%1%有区别吗?
- linux基础:用户与组,权限管理
- Pandas to_json() 中文乱码,转化为json数组
- GPU 编程入门到精通(五)之 GPU 程序优化进阶
- 使用Spring Data Cassandra缓存的预备语句
- sql数据透视_SQL Server中的数据科学:取消数据透视
- Android Sensor Driver(四)——IIC总线和驱动
- 30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)
- Atitit 架构的艺术 目录 1. 按照技术站分类	1 1.1. LAMP架构,到IOE架构,再到分布式架构	1 1.2. Ssh ssm	1 2. Bs cs web hybrid架构	1 3.
- 计算机考研英语资料推荐,2016考研计算机专业备考资料推荐
- 51单片机驱动LCD12864中文字库显示
- 关于SASE与安全市场的那些事
- 软件测试工程师应该具备哪些能力?
- python进行图像滤波_Python图像滤波处理操作示例【基于ImageFilter类】
- 互联网诞生前,苏联最流行的11台个人电脑
- A10+Android4.0 音频驱动
- Java爬虫html解析-Jsoup(绿盟极光报告)
- python发送notes邮件_使用python 驱动 lotus notes发送邮件 | 学步园
- 基于lifekeeper+windows 2000 + sqlserver2000 + 镜像磁盘陈列的双机热备
- linux上的无线网卡灯不亮