Building OpenCascade on Windows with Visual Studio

Stella981
• 阅读 617

Building OpenCascade on Windows with Visual Studio

eryar@163.com

摘要Abstract:详细说明OpenCascade的编译配置过程,希望对你编译OpenCascacde有所帮助。本文内容来自OCCT的Overview文档,详细信息可参考之。

关键字Key Words:OpenCascade、Compiling

一、源码包 Source package

OpenCascade的源码包中包括OpenCascade的源代码、示例程序源代码及预先编译好的二进制程序。编译工具也提供了,在Windows平台上是Visual C++的工程文件,在Unix平台上是Makefile。

二、目录文件说明 Description of the Directory Tree

Building OpenCascade on Windows with Visual Studio

l ros/adm/cmake:包含CMake的创建过程;

l ros/adm/lin/amk:包含Automake创建过程;

l ros/adm/mac/cbp:包含Code::Blocks工程;

l Ros/adm/mac/xcd:包含Xcode工程;

l Ros/adm/msvc:包含Visual Studio工程,支持的Visual Studio版本有Visual C++ 2005,2008,2010,2012,可以在Windows平台上编译32位和64位的 OpenCascade;

l Ros/data:包含各种文件格式的数据,可以在OCCT中试验用;

l Ros/doc/Overview:包含简要介绍OCCT的文档;

l Ros/doc/ReferenceDocumentation:包含由Doxygen生成的OCCT参考文档;

l Ros/drv:包含由WOK生成的源代码文件;

l Ros/inc:包含所有OCCT的头文件;

l Ros/src:包含OCCT的源代码,它们以文件夹的方式组织,一个开发单元一个文件夹;

l Ros/samples:包含OCCT的示例程序及其源代码。(C#和MFC的示例只适用于Windows平台。);

l Ros/tests:包含OCCT的测试脚本;

三、先决条件 Common pre-requisites

l OpenCascade Technology使用经支持的编译器认证的STL实现。尽管源码也可以在其他实现上重新编译(如STLPort),但是OpenCascade S.A.S对其稳定性不作任何保证。

l 重新编译OpenCascade Technology需要2GB的可用硬盘空间;

l 编译之前,你需要重新编译或安装第三方库(必须的第三方库是:tcl/tk8.5.8,freetype2.4.10;可选的第三方库是:gl2ps1.3.5,freeimage3.14.1,tbb。);

四、编译设置 Building on Windows with Visual Studio project files

在编译之前,必须设置第三方库的头文件和库文件的路径。第三方库有TclTk,FreeType,FreeImage,gl2ps和TBB。可以在Visual Studio的工具->选项中的目录来设置,也可以配置批处理文件custom.bat来设置。最好是通过批处理文件custom.bat来设置。

gl2ps,TBB和FreeImage是可选的第三方库。通过变量CSF_DEFINES来指定是否在编译OpenCascade中使用他们。

l HAVE_TBB:若想在OCCT中使用Intel的TBB(内存管理);

l HAVE_FREEIMAGE:若想在OCCT中使用FreeImage;

l HAVE_GL2PS:若想在OCCT中使用gl2ps;

不使用上述的三个库的custom.bat文件内容如下所示:

n set HAVE_FREEIMAGE=false

n set HAVE_GL2PS=false

n set HAVE_TBB=false

这样定义在env.bat中产生在字符串的设置效果为: set CSF_DEFINES=。

使用上述三个库的custom.bat设置如下所示:

n set HAVE_FREEIMAGE=true

n set HAVE_GL2PS=true

n set HAVE_TBB=true

这样定义在env.bat中产生的字符串的设置效果为:

set CSF_DEFINES=HAVE_TBB;HAVE_FREEIMAGE;HAVE_GL2PS。

配置好custom.bat后,就可以用ros子文件夹中的msvc.bat来启动MS Visual Studio了,这样编译OCCT的环境变量已经设置好了。启动msvc.bat可以带可选参数:

l 参数1:启动的Visual Studio的版本(vc8, vc9, vc10, vc11);

l 参数2:系统架构(win32, win64);

l 参数3:编译模式(Debug, Release);

l 参数4:Visual Studio解决方案路径;

在Windows平台上编译生成的库(dll, dlld, lib, libd)和可执行程序(exe)分别在文件夹ros/win32/vc8, vc9, vc10, vc11,或64位的在ros/win64文件夹中。

文件夹ros/adm/msvc中包含vc8, vc9, vc10, vc11的Visual Studio工程文件,可用来分别生成32位和64位的OCCT。

下列所示的workspaces必须按顺序编译:

  1. Foundation Classes (file FoundationClasses.sln)

  2. Modeling Data(file ModelingData.sln)

  3. Modeling Algorithms(file ModelingAlgorithms.sln)

  4. Visualization(file Visualization.sln)

  5. Application Framework(file ApplicationFramework.sln)

  6. Data Exchange(file DataExchange.sln)

  7. Draw(file Draw.sln)

另外,包含所有工程文件的解决方案文件OCCT.sln也提供了,可以用OCCT.sln来编译一个完整的OCCT库。即直接运行:

msvc.bat vc11 win64 Debug

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Gson之实例五
前面四篇博客基本上可以满足我们处理的绝大多数需求,但有时项目中对json有特殊的格式规定.比如下面的json串解析:{"tableName":"students","tableData":{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 9:54:49 PM"},{"id":2,"name":"曹贵生"
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这