源起
今天使用 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=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
構建生成的文件寫入了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)生成