ifcopenshell在VS2015下的编译详解编程语言

源起

  今天使用 IfcOpenShell的IfcConvert ,因为是开源的所以就想自己编译下,编译过程中遇到不少问题,因此记录下来

什么是IfcOpenShell?

IfcOpenShell是一个开源(LGPL)软件库,可帮助用户和软件开发人员使用IFC文件格式。

开始前的准备

   visual studio 2015,设置环境变量  参考
   git,设置环境变量 
   cmake,设置环境变量

  源码下载 IT虾米网

1.执行脚本

  运行cmd脚本不是直接打开windows的cmd运行的,而是打开vs的cmd

  打开VS,工具——>外部工具

ifcopenshell在VS2015下的编译详解编程语言

  命令是机器上的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

  根据实际路径修改

   点确定后,在工具栏就可以看到了

ifcopenshell在VS2015下的编译详解编程语言

  打开刚才配置的 Command Prompt

  (1)运行脚本 build-deps

build-deps.cmd "Visual Studio 14 2015 Win64" Debug

ifcopenshell在VS2015下的编译详解编程语言

  说明:

  可能发生错误,大部分原因是网络情况不好库文件下载中断,多运行几遍,或者FQ再执行

  (2)运行脚本 run-cmake.bat

run-cmake.bat "Visual Studio 14 2015 Win64"

  默认为支持IFC2X3版本,如果需要IFC4版本

run-cmake.bat "Visual Studio 14 2015 Win64" -DUSE_IFC4=1

   说明:

    如果出现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

ifcopenshell在VS2015下的编译详解编程语言

  构建生成的文件写入了build-vs2015-x64中

2.编译

  IfcOpenShell.sln在build-vs2015-x64中,用VS2015打开

ifcopenshell在VS2015下的编译详解编程语言

  编译

ifcopenshell在VS2015下的编译详解编程语言

  编译后在 build-vs2015-x64/Debug 下

ifcopenshell在VS2015下的编译详解编程语言

2.测试

  复制IfcConvert.exe到D:/ifc

  运行 IfcConvert cylinders.ifc cylinders.dae

ifcopenshell在VS2015下的编译详解编程语言

  查看 cylinders.dae

ifcopenshell在VS2015下的编译详解编程语言

 注:

  上面生成的为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下的编译详解编程语言

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20336.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论