源起

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

什么是IfcOpenShell?

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

开始前的准备

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

  源码下载 https://github.com/IfcOpenShell/IfcOpenShell

1.执行脚本

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

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

ifcopenshell在VS2015下的编译-LMLPHP

  命令是机器上的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下的编译-LMLPHP

  打开刚才配置的 Command Prompt

  (1)运行脚本 build-deps

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

ifcopenshell在VS2015下的编译-LMLPHP

  说明:

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

  (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

ifcopenshell在VS2015下的编译-LMLPHP

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

2.编译

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

ifcopenshell在VS2015下的编译-LMLPHP

  编译

ifcopenshell在VS2015下的编译-LMLPHP

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

ifcopenshell在VS2015下的编译-LMLPHP

2.测试

  复制IfcConvert.exe到D:\ifc

  运行 IfcConvert cylinders.ifc cylinders.dae

ifcopenshell在VS2015下的编译-LMLPHP

  查看 cylinders.dae

ifcopenshell在VS2015下的编译-LMLPHP

注:

  上面生成的为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下的编译-LMLPHP

05-22 13:43