win10系统VS2015编译ifcplusplus
来源:互联网 发布:阿里云可以翻墙吗 编辑:程序博客网 时间:2024/05/29 11:06
简介
ifcplusplus是一个C++的class model,可以用来读写STEP格式的IFC文件。在ifcpp和OpenSceneGraph的基础上,simpleviewerexample项目用来展示IFC模型。因此,我们需要安装的库有boost, OSG(以及OSG依赖的第三方库)
编译步骤
安装OSG的第三方库
首先,感谢好心人为我们写了安装第三方库的指南
https://github.com/bjornblissing/osg-3rdparty-cmake
具体的做法参照readme中的INSTRUCTION,作者介绍的太详细了我就不在这里做翻译了。大意就是把底下链接里的那些库的源码都下载下来,打开cmake,填好源码的位置,build, generate, 在VS中打开工程,编译即可。
注意几点:
尽量就下载上面所说的版本,而不是最新的版本。(有些用新版没问题,有些用新版就会出错)
http://github.com/nmoinvaz/minizip 在github里现在的版本就会编译出错,记得滚回70e3fdad6021c38b5ecacda531df0802cd547bbf这个版本。
git reset --hard 70e3fdad6021c38b5ecacda531df0802cd547bbf
编译安装OSG
从GITHUB上下载源码,再用CMAKE编译。
这里就是常规的使用cmakeGUI的,哪个库找不到手动填上再configure直到搞定就可以了。
这里只需要注意,用VS编译的时候用管理员身份,因为INSTALL会把OSG安装到C盘里。
安装OpenCascade
直接下载安装包安装即可。下载地址:(比较坑的是需要注册才可以下载)https://www.opencascade.com/sites/default/files/private/occt/OCC_7.2.0_release/opencascade-7.2.0-vc10-64.exe
安装CGAL
直接下载安装包安装即可。
编译IFCPP
下载源码,会发现源码中有.sln文件。这个大工程里有三个小工程,其中ifcplusplus依赖于carve,simpleviewerexample依赖于carve & ifcplusplus。教程里说用VS2013,我用的是VS2015也并没有出问题。但是导入工程之后注意以下几点:
- 设置环境变量
按照github里的windows安装指南来设置。也就是要配好OSG在哪,BOOST在哪,CGAL在哪,QT在哪,wix toolset我也下载了。不知道为什么我执行这个脚本环境变量并没有改变,所以我打开计算机属性一个一个输入的…
set OSG_DIR=C:\Program Files\OpenSceneGraphset OSG_LIBRARY_PATH=%OSG_DIR%\binset OSG_PLUGINS_LIB=%OSG_DIR%\lib\osgPlugins-3.4.1set OSG_FILE_PATH=C:\Program Files\OpenSceneGraph\OpenSceneGraph-Data;C:\Program Files\OpenSceneGraph\OpenSceneGraph-Data\Images;C:\Program Files\OpenSceneGraph\OpenSceneGraph-Data\fonts;set BOOST_DIR=C:\thirdparty\vs2015\x64\boost_1_63_0set CGAL_DIR=G:\CGAL-4.11\auxiliary\gmp\libset QMAKESPEC=win32-msvc2015set QMAKE_TARGET.arch=x86_64set QTDIR=C:\Qt\Qt5.9.0\5.9\msvc2015_64PATH=%OSG_DIR%\bin;%PATH%PATH=%OSG_PLUGINS_LIB%;%PATH%PATH=%QTDIR%\bin;%PATH%PATH=%CGAL_DIR%\bin;%PATH%PATH=C:\Program Files (x86)\WiX Toolset v3.8\bin;%PATH%
找不到v141工具集。
由于我用的是VS2015, 配置的工具集是v140, 打开carve, ifcplusplus, simpleviewerexample 三个文件夹,分别编辑.vcxproj文件,把里面的v141全部修改成v140windows SDK版本不对
只需要右键每个工程,选择重定SDK版本目标,选择你现在拥有的SDK版本即可MSB6006 cmd.exe exit with code 3
感谢知乎的回答!下载QT在vs2015上的插件,安装。下载地址:https://download.qt.io/official_releases/vsaddin/qt-vs-tools-msvc2015-2.1.1.vsix
然后右键simpleviewerexample,点击convert project to QT VS Tool project。最多的错误当然是各种找不到:找不到.lib, 找不到.h
其实这个很简单。一个项目要依赖其他的库时,需要配置的地方有三个:
1)头文件在哪,就是程序开头include的那些.h文件去哪里找
项目->属性->C/C++->常规->附加包含目录 所有你在程序里include的头文件的寻找路径都需要放进来,否则就会找不到。在路径里面,一般会有一些$(BOOST_DIR)这种变量,这些就是设置在环境变量里后VS就可以找到了。设置完环境变量最好重启下VS。
2).lib文件在哪
项目->属性->链接器->常规->附加库目录 所有你程序中用到的.lib文件都需要在这里找到
3)需要的.lib文件有哪些
项目->属性->链接器->输入->附加依赖项 把你要用的.lib填写在这里
解决问题的方法就是,在项目属性里看,路径对不对全不全,对不对(去那个文件夹看看是不是有你要的文件)缺什么补什么即可(哪里补:你总知道你的依赖库安装在哪里吧??)
在解决了以上各种问题之后
你应该可以编译成功了!
运行
去双击simpleviewerexample.exe,提醒你找不到各种dll。缺什么就吧什么拷贝到当前目录下面就可以啦。
下载一个ifc文件,导入试试把!
分割线:
下面是我的一段失败经历,不过也学到很多,就不删除了
=========================================
(windows下不是用cmake啊宝宝,build instruction上写了哦)
下载源码,打开cmake
主要填的是BOOST和OSG和QT的安装位置
打开,用VS编译ALL_BUILD,编译相当慢,至少需要一个小时。一共5个项目,会发现simpleviewerexample编译失败,一共500多个错误,错误基本都在ofstream里。这是因为OSG中的fstream和std的fstream重名导致的问题。修改SimpleViewerExample的项目属性,配置属性->C/C++->常规->附加包含目录,再最上面添加 C:\Program Files %28x86%29\Microsoft Visual Studio 14.0\VC\include(也就是std中fstream.h的位置)。因为include的顺序对编译是有影响的,所以要放在最上面。放好之后,错误的文件加上#include 就可以了。
设置编译选项:/bigobj
(配置属性->C/C++->命令行->其他属性)填写上/bigobj
然后,,,不再报错了,但是永远停不下来了……一直在生成代码,遂放弃!
- win10系统VS2015编译ifcplusplus
- win10 vs2015 jsoncpp编译 支持xp系统
- Win10+VS2015编译libcurl
- win10 vs2015 libs3 编译
- win10 vs2015 opencv编译
- win10 vs2015 wxWidgets编译
- win10 vs2015 编译 wxSqlite3
- win10 vs2015 freetype2编译
- VLfeat win10 vs2015 编译
- expat win10+vs2015编译
- win10+vs2015 meshlab编译
- OGRE win10 Vs2015编译
- win10+VS2015+pycaffe编译
- win10 vs2015 php源码编译
- WIN10 QWT6.1.3+VS2015编译
- proj.4编译 win10 vs2015
- win10 + caffe + vs2015 编译步骤
- win10-vs2015编译cef3.2023
- hadoop系列教程第一讲:基本概念
- 表格加强
- Java调用Python脚本(不需要传参)
- listview和Expandablelistview实现购物车功能
- js监听器
- win10系统VS2015编译ifcplusplus
- 【nginx】读取缓存文件
- RecyclerView多布局加载
- cannot be cast to android.widget.HeaderViewListAdapter源码分析
- Android 的Canvas的drawArc方法参数介绍
- C#中delegate用法(带参数)
- 前端_全
- 目前主要有那些格式来作为虚拟机的
- 笔记五:linux下I2C子系统学习