ifcopenshell在VS2015下的编译
源起
今天使用 IfcOpenShell的IfcConvert ,因为是开源的所以就想自己编译下,编译过程中遇到不少问题,因此记录下来
什么是IfcOpenShell?
IfcOpenShell是一个开源(LGPL)软件库,可帮助用户和软件开发人员使用IFC文件格式。
开始前的准备
visual studio 2015,设置环境变量 参考
git,设置环境变量
cmake,设置环境变量
源码下载 https://github.com/IfcOpenShell/IfcOpenShell
1.执行脚本
运行cmd脚本不是直接打开windows的cmd运行的,而是打开vs的cmd
打开VS,工具——>外部工具
命令是机器上的cmd的地址
C:\Windows\System32\cmd.exe
参数是vs的VsDevCmd.bat的地址
/k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
初始目录
D:\ifc\vs\IfcOpenShell\win
根据实际路径修改
点确定后,在工具栏就可以看到了
打开刚才配置的 Command Prompt
(1)运行脚本 build-deps
build-deps.cmd "Visual Studio 14 2015 Win64" Debug
说明:
可能发生错误,大部分原因是网络情况不好库文件下载中断,多运行几遍,或者翻墙再执行
(2)运行脚本 run-cmake.bat
run-cmake.bat "Visual Studio 14 2015 Win64"
默认为支持IFC2X3版本,如果需要IFC4版本
run-cmake.bat "Visual Studio 14 2015 Win64" -DUSE_IFC4=
说明:
如果出现Looking for pthread.h - not found
原因:build-dep命令下载了icu-58.2-vs2015,但未将其解压缩到deps-vs2015-x64-installed/icu。这导致run-cmake退出并出现有关UNICODE的错误
解决:
手动提取icu文件
deps/icu-58.2-vs2015/include/unicode -> deps-vs2015-x64-installed/icu/include/unicode
deps/icu-58.2-vs2015/lib64 -> deps-vs2015-x64-installed/icu/lib
构建生成的文件写入了build-vs2015-x64中
2.编译
IfcOpenShell.sln在build-vs2015-x64中,用VS2015打开
编译
编译后在 build-vs2015-x64/Debug 下
2.测试
复制IfcConvert.exe到D:\ifc
运行 IfcConvert cylinders.ifc cylinders.dae
查看 cylinders.dae
注:
上面生成的为Debug的,如果想生成Release的,步骤为
(1)build-deps.cmd "Visual Studio 14 2015 Win64" Release
(2)run-cmake.bat "Visual Studio 14 2015 Win64"
(3)用VS2015打开IfcOpenShell.sln
(4)生成
ifcopenshell在VS2015下的编译的更多相关文章
- 17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)
0 引言 本次开发环境的配置是在综合考虑了开源库的版本.VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统. 配置的过程中遇到了形形色色的问题,但是一一解决了.通过这 ...
- VS2015下如何用编译、调试程序。
VS2015下如何用编译.调试程序. (通过实践给出截图) 安装步骤: 下载安装网址[VS2015下载地址](http://www.ithome.com/html/win10/164028.htm) ...
- VS2015下编译64位GDAL总结
使用VS2015编译最新的64位GDAL(最新gdal2.11),确实有一些问题,看来双方还是太新了,有点不兼容,特总结如下. 以前经常用的通过VisualStudio IDE进行编译的方式现在似乎不 ...
- Python3.7源码在windows(VS2015)下的编译和安装
Python3.7源码在windows(VS2015)下的编译和安装 下载官方源码,使用vs2015(WIN10SDK),最python3.7.0的源码进行编译,编译出不同的版本(release,de ...
- Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)
后记: 由于自己low,没有下载罪行的python3.2导致编译上遇到种种问题,后文可以参考,建议看: <Windows7 VS2015 下编译 PythonQt3.2> https:// ...
- Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)探索
时间:2018年10月20日 笔者最近在做Qt方面的开发工作,需用到脚本程序对程序内部进行扩展,就很自然的想到了PythonQt,下面介绍PythonQt在Windows下的的安装编译心得,水平有限, ...
- vs2015下编译免费开源的jpeg库,ijg的jpeg.lib
vs2015下编译免费开源的jpeg库,ijg的jpeg.lib 1. 去Independent JPEG Group官网www.ijg.org下载jpegsrc,我下载的版本是jpegsrc9c.z ...
- [libpng]CMake+VS2015下编译libpng,及使用小例
编译前的工作 在编译libpng前,需要把zlib编译好,并加载到编译环境里. CMake + VS2015 下编译zlib,及使用小例 下载与解压 libpng的官网是 http://www.lib ...
- VS2015下OpenGL库的配置
写在前面: 最近要用到OpenGL,光是在VS2015下配置就费了很大的劲,现在将我的成果直接贡献给大家,希望能为需要在VS2015下配置OpenGL的读者省去一些麻烦. 正文: 资源地址1:http ...
随机推荐
- Controller的激活(1)
Public interface IController { void Execute(RequestContext requestContext) } Public abstract Class C ...
- linux中/dev/null与2>&1讲解
首先先来看下几种标识的含义: /dev/null 表示空设备文件 0 表示stdin标准输入 1 表示stdout标准输出 2 表示stderr标准错误 先看/dev/null command > ...
- wordpress调用置顶文章sticky_posts的三种方法
有时我们在开发wordpress时需要调用置顶文章sticky_posts,怎么调用呢?几种写法,有用到query_post的,有用到WP_Query,也有用到is_sticky(),下面随ytkah ...
- 基于原型的js语言
基于原型编程首先要考虑的问题:原型与对象的关系: 使用原型概念建立基于复用目的的联系链,以供运行时系统使用. 一.原型系统原理 封装.原型.多态 vs 封装.继承.多态 引用原型 vs 复制原型 机制 ...
- 接口调试工具Postman之自动同步Chrome cookies,实现自动登陆验证
前言 在前后端分离开发时,做为后端开发人员,要求独立开发完成某个接口后,开发人员自己需要先测试通过后再提交给测试人员进行测试,否则会出现到测试人员哪里业务流程根本就走不通,或者BUG会过多的情况等. ...
- Linux定时任务crontab命令
linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于用户自己也可以设置计划任务,所以,Li ...
- AsyncAPI and CloudEvents
一篇比较AsyncAPI与CloudEvents的文章,很不错,原文连接:https://www.asyncapi.com/blog/asyncapi-cloud-events/ I’ve been ...
- [RN] React Navigation 使用中遇到的显示 问题 汇总
React Navigation 使用中遇到的显示 问题 汇总 https://www.jianshu.com/p/8b1f18affc5d
- 寄存器,移位寄存器的电路原理以及verilog代码实现
寄存器:用以存放二进制代码的电路,下图为由维特阻塞D触发器组成的4位数码寄存器: 逻辑功能分析: 1.异步端CR置0时,输出置0: 2.同步并行置数:D0~D3为4个输入代码,当CP上升沿到达时,D0 ...
- MyBatis试题
在使用MyBatis的时候,除了可以使用@Param注解来实现多参数入参,还可以用()传递多个参数值. (选择一项) A.用Map对象可以实现传递多参数值 B.用List对象可以实现传递多参数值 C. ...