Posted on 2012-08-13 23:29
eryar 閱讀(32570)
評(píng)論(38) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE的安裝與編譯
The Installation and Compilation of OpenCASCADE
eryar@163.com
一、安裝OpenCASCADE
可以從OpenCASCADE的官網(wǎng)上下載其安裝包,可以選擇最新的版本,下載網(wǎng)址為:
http://www.opencascade.org/getocc/download/loadocc/ 。如果只用其庫(kù)來(lái)編程已經(jīng)夠了,安裝好下載的安裝包即可。若想對(duì)其進(jìn)行調(diào)試,必須先把它編譯成功。想編譯通過(guò),必須下載第三方庫(kù),因?yàn)?strong>OpenCASCADE中用到了第三方的工具。如:FreeImage為通用圖形格式的支持;FreeType和Ftgl為對(duì)文字渲染的支持,包括對(duì)中文渲染的支持;gl2ps用來(lái)將渲染的內(nèi)容轉(zhuǎn)換為矢量圖形輸出,等等。第三方庫(kù)都可以從官網(wǎng)上提供的鏈接來(lái)下載,因?yàn)椴煌陌姹究赡苡玫降牡谌綆?kù)的版本也不同,必須保持一致。下載地址為:
http://www.opencascade.org/getocc/download/3rdparty/ 。對(duì)于Windows操作系統(tǒng)下載各相應(yīng)版本如下所示:
有的時(shí)候編譯通不過(guò),可能報(bào)的錯(cuò)誤就是第三方庫(kù)的版本與安裝好的OpenCASCADE的版本不一致造成的。把與編譯工具相應(yīng)版本的第三方庫(kù)重新編譯并放到相應(yīng)的目錄下就可解決問(wèn)題。這也是OpenCASCADE推薦的方法,原文如下:The recommended way to do this is to download each of the third-party tools from its web site and build it using the relevant tools.
二、編譯OpenCASCADE
OpenCASCADE6.5.0以后對(duì)編譯環(huán)境的設(shè)置采用了批處理的方式。在安裝完畢后的文件目錄中有個(gè)ros的文件夾,其中有幾個(gè)批處理文件:env.bat、env_build.bat、msvc.bat。打開(kāi)這幾個(gè)批處理文件,會(huì)發(fā)現(xiàn)它們就是在設(shè)置編譯環(huán)境。早期版本是直接寫(xiě)到系統(tǒng)的環(huán)境變量中去,現(xiàn)在是運(yùn)行批處理文件msvc.bat,根據(jù)不同的工具,輸入以下參數(shù),示例為:vc8 win32 Debug adm\win32\vc8\OCCT.sln。即運(yùn)行命令切換到ros文件夾,輸入下面的命令:msvc.bat vc8 win32 Debug adm\win32\vc8\OCCT.sln就可以啟動(dòng)整個(gè)項(xiàng)目,后面是一些選項(xiàng)設(shè)置,如使用的是VC8編譯工具,平臺(tái)為win32,輸出為Debug。若是使用的Visual Studio 10則輸入?yún)?shù)vc10 win32 Debug adm\win32\vc10\OCCT.sln即可,也很方便。
編譯順序也是非常重要的,必須按如下順序進(jìn)行:
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)
如下圖清晰所示:
三、總結(jié)
編譯成功后,可以為以后程序的調(diào)試打下基礎(chǔ);也可對(duì)OpenCASCADE有個(gè)大概認(rèn)識(shí)。希望你也能編譯成功。若有任何問(wèn)題,可與我聯(lián)系:eryar@163.com。
視頻:
OpenCASCADE Compilation http://t.cn/RNKAMut
PDF版本:
OpenCASCADE Installation and Compilation: OpenCASCADE Installation and Compilation
Feedback
你好,十分感謝,還希望大俠能夠提供一下 samples 的生成方式,我的老是報(bào)錯(cuò)
@謝謝
你好!
有時(shí)間寫(xiě)一個(gè)samples 的編譯說(shuō)明。
其實(shí)在samples\mfc\standard文件夾中的readme.txt中有詳細(xì)說(shuō)明,仔細(xì)看看就知道了。
非常感謝大俠回復(fù),
通過(guò)你的方法我將框架編譯成功,
samples其實(shí)我已經(jīng)編譯成功了,但是就是運(yùn)行不了,老是報(bào)錯(cuò), read me 里面的內(nèi)容我也研究了一下,總感覺(jué) samples\mfc\standard 文件下的 msvc.bat 跳轉(zhuǎn)有問(wèn)題,老是報(bào) 未找到相應(yīng)文件, 然后我只能手動(dòng)打開(kāi) samples\mfc\standard 文件夾下的 vs10
然后是編譯報(bào)錯(cuò) 找不到頭文件,沒(méi)辦法所有的都重新加載 原來(lái)的加載設(shè)置都刪除,重新加載 win/vc9下的文件, 用新生成的 win/vc10 不能夠通過(guò)編譯,也找不到頭文件,只能用vc9,最后花了好大功夫編譯通過(guò)了,結(jié)果運(yùn)行找不到dll文件,于是又將dll 復(fù)制到 window/system32 大費(fèi)周章,錯(cuò)誤在減少,但是最后還是不能運(yùn)行, (說(shuō)明,第一次安裝好了后,直接運(yùn)行deom是沒(méi)有問(wèn)題的,通過(guò)我的編譯后,就不能運(yùn)行了),希望大俠能明示, 謝謝大俠了
@謝謝
不客氣。
運(yùn)行Samples的方法,OpenCASCADE也在ReadMe.md文件中進(jìn)行了說(shuō)明:
2. Launching Open CASCADE Technology samples:
---------------------------------
To run the Open CASCADE Technology samples:
execute run.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug] [SampleName]
To run the Animation sample:
execute run.bat vc8 win32 Debug Animation
因?yàn)镺penCASCADE的samples用到OpenCASCADE其他相關(guān)的dll,進(jìn)而可能依賴一些第三方庫(kù),所以Samples程序只要能找到所有依賴的dll就可運(yùn)行了,包括第三方庫(kù)的dll。為了不影響機(jī)器的環(huán)境變量,用這種批處理的方式來(lái)運(yùn)行例子也很方便的(這樣就不需要將相關(guān)的dll復(fù)制到system32中去了)。
你好大俠,我的表達(dá)有問(wèn)題,我的意思是 調(diào)試的時(shí)候出的問(wèn)題,如何調(diào)試samples , 謝謝
@謝謝
將Samples編譯成功后,編譯方法如下:
3. Modifying and rebuilding samples:
--------------------------------------------
You can modify, compile and launch all sample projects in MS Visual C++ at once:
execute msvc.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug]
To run all sample projects in MS Visual C++ at once:
execute msvc.bat vc8 win32 Debug
使用編譯時(shí)的批處理啟動(dòng)Samples項(xiàng)目,并將你出錯(cuò)的Sample工程設(shè)置為當(dāng)前Project,F(xiàn)5即可調(diào)試了。
msvc.bat vc10 win32 Debug
這個(gè)我執(zhí)行了,但是找不到文件,報(bào)錯(cuò)
我是用的最新版的6.7.1 感覺(jué) 路徑里面多了一個(gè) //..//..//
好像是路徑錯(cuò)了,我只好手動(dòng)打開(kāi)了,
msvc.bat vc10 win32 Debug
請(qǐng)問(wèn)大俠 為什么老是找不到路徑呢
@謝謝
路徑不多,我6.7.1的Samples都可以正常編譯。
是不是你的6.7.1的路徑中包含了空格?
把與編譯工具相應(yīng)版本的第三方庫(kù)重新編譯并放到相應(yīng)的目錄下就可
是什么意思呢?
@張三
就是OpenCASCADE編譯時(shí)設(shè)置的第三方庫(kù)所在的include/lib/bin相應(yīng)的目錄中。
如果用的批處理,編譯好的lib/dll輸出到批處理里面對(duì)應(yīng)的目錄。
帥eryar,我知道@謝謝是什么意思了,他的問(wèn)題我也遇到了。我也是用VC10,而6.7.1默認(rèn)面向VC9。
下載VC10的第三方類庫(kù)設(shè)置好路徑以后,七個(gè)類庫(kù)可以通過(guò)編譯,但想要運(yùn)行例子(run.bat),必須先編譯例子,即先運(yùn)行mfc例子下的msvc,打擊打開(kāi)后提示“無(wú)法打開(kāi)如下文件(接著是空白),無(wú)法加載文件”,因?yàn)榭吹降氖强瞻祝乙仓浪傅牡氖侨鄙偈裁次募M(jìn)而無(wú)法加載對(duì)應(yīng)的ALL-vc10.sln。我檢查了env.bat和對(duì)應(yīng)的msvc.bat,看著沒(méi)有問(wèn)題,不知道是不是@謝謝說(shuō)的無(wú)法正確連接路徑。
請(qǐng)問(wèn)你遇到這個(gè)問(wèn)題了嗎?
在ReadMe.md里面最后有一句提示:make sure your PATH environment variable contains a directory, msdev.exe is located in.
更正
“打擊” = “雙擊”
“我也知道” = “我也不知道”
@歐帥
OpenCASCADE6.7.1的Samples編譯是有問(wèn)題,我編譯試過(guò),需要修改opencascade6.7.1文件夾中的msvc.bat,修改如下內(nèi)容:
rem Launch Visual Studio - either professional (devenv) or Express, as available
if exist "%DevEnvDir%\devenv.exe" (
rem start "" "%DevEnvDir%\devenv.exe" "%PRJFILE%"
start "%DevEnvDir%\devenv.exe" "%PRJFILE%"
與早期版本相比是多了個(gè)引號(hào),將引號(hào)去掉即可。
解決。
什么都不說(shuō)了,You're the most niubiable person I've ever seen.
您好! 我安裝opencascade 總是出錯(cuò) 不知什么原因
編譯的時(shí)候有5個(gè)項(xiàng)目提示 無(wú)法解析的外部變量
還有 編譯完之后 draw.bat無(wú)法運(yùn)行
謝謝~
@孤獨(dú)劍
Hi,
你好!
那就是必須的第三方庫(kù)沒(méi)有正確配置導(dǎo)致的錯(cuò)誤。
如果是用opencascade安裝包來(lái)編譯,安裝完成后,根據(jù)編譯器及平臺(tái)修改下custom.bat后,直接運(yùn)行msvc.bat編譯即可一次成功。
Best Regards,
Shing Liu
您好,我安裝編譯了occ6.8,但draw.exe不能啟動(dòng),提示0xc000007b錯(cuò)誤,我的電腦win8 64位,網(wǎng)上查了一下,可能是需要dirextx9.0,但從網(wǎng)上下載的directx總被360檢測(cè)出有病毒,不知博主可有好的解決方法推薦,謝謝
@佚名
Hi,
你好!
DRAWEXE依賴Tcl/Tk,occ的三維目前是用OpenGL顯示,沒(méi)有依賴DX3D的。
如果Tcl/Tk的庫(kù)沒(méi)有找到也可能報(bào)這種錯(cuò)誤。
occ的做法是用批處理配置好環(huán)境變量后用draw.bat來(lái)啟動(dòng)Draw的,可以參考下這種方式。
Best Regards,
Shing Liu
博主您好,很久以來(lái)一直關(guān)注您的博客,也請(qǐng)教過(guò)一些問(wèn)題,但有一個(gè)問(wèn)題我一直無(wú)法解決,就是自定義旋轉(zhuǎn)原點(diǎn)的問(wèn)題,occ每次旋轉(zhuǎn)前總統(tǒng)計(jì)圖元的形心,自動(dòng)將旋轉(zhuǎn)原點(diǎn)定在形心處,但有時(shí)為了觀察局部圖形,將圖形放大后一旋轉(zhuǎn)想觀察的部分都飄到屏幕外,我如何能在不改變?cè)创a的情況下設(shè)定旋轉(zhuǎn)點(diǎn),比如一條線,本來(lái)繞線的中點(diǎn)旋轉(zhuǎn),我想觀察其端部區(qū)域,如何將旋轉(zhuǎn)點(diǎn)設(shè)在端點(diǎn)處,謝謝!
@佚名
Hi 佚名,
你好!
occ6.8之后引入了Camera類,你可以嘗試下在處理鼠標(biāo)事件的地方自己來(lái)調(diào)整camera,而不用occ的view中的旋轉(zhuǎn)函數(shù)。
Best Regards,
Shing Liu
確實(shí)有效.以前一直用6.3版本,剛接觸6.8,對(duì)它的新特性還不熟悉,謝謝博主指導(dǎo)
你好,我得MFC Sample編譯通過(guò)了,但是在啟動(dòng)起來(lái)以后總是報(bào):“Geometry.exe 中的 0x77b915ee 處有未經(jīng)處理的異常: 0x00000000: 操作成功完成。”是拋出了Standard_Failure異常,各位有沒(méi)有遇到過(guò)這種情況?
我知道了,"CSF_ShadersDirectory" 環(huán)境變量沒(méi)設(shè)置好,導(dǎo)致到不到OpenGL所需要的文件夾“Shaders”
@oneOfHUSTCAD
嗯,如果用配置好的環(huán)境變量來(lái)啟動(dòng)例子,就不會(huì)出現(xiàn)這種問(wèn)題了。
就像安裝好的例子程序都是通過(guò)批處理文件啟動(dòng)的。
# re: OpenCASCADE 的安裝與編譯[未登錄](méi) 回復(fù) 更多評(píng)論
2016-03-31 20:07 by
有興趣的聯(lián)絡(luò)我微信benzcn
為什么我的draw.bat提示 tkloop: error in tk initialization. tcl reported: invalid command name "tcl_find library"
@yyy
這是第三主庫(kù)Tcl/Tk沒(méi)有配置正確導(dǎo)致的。
@eryar
處理好了,之前把tcltk里面的兩個(gè)dll復(fù)制到system32里了,刪掉就好了,應(yīng)該是和批處理命令里面定義的環(huán)境變量沖突了
@yyy
我是不喜歡去污染system32的,最多可以把相關(guān)庫(kù)的dll路徑加到環(huán)境變量path中去。
樓主你好,我在編譯的時(shí)候遇到2個(gè)問(wèn)題:
1、配置好custom.bat后,通過(guò)msvc.bat啟動(dòng)VC,發(fā)現(xiàn)項(xiàng)目無(wú)法編譯,原因是附加包含目錄里面用到了宏CSF_OPT_INC,而打開(kāi)宏目錄,發(fā)現(xiàn)該宏的值只有一個(gè)路徑opencascad\inc。
為解決這個(gè)辦法,我只好手動(dòng)把所有項(xiàng)目附加包含目錄中的這個(gè)宏替換成custom.bat中的那長(zhǎng)長(zhǎng)的一大串目錄,這樣編譯成功了,但不知道這樣處理是否正確。
2、編譯成功后在VC中運(yùn)行DRAWEXE,能夠成功;但是我想在win32/vc10/bind下直接運(yùn)行,我把所有相關(guān)的DLL拷貝到了該目錄,卻提示
"couldn't read file "ddefault": no such file or directory"
我知道這個(gè)TCL/TK環(huán)境沒(méi)有配置好導(dǎo)致的,問(wèn)題是如何解決呢?
@OCC_Study
Hi,
你好!
1.custom.bat就是用來(lái)配置inc和lib的,如果你已經(jīng)可以編譯成功了, 就沒(méi)什么影響;
2. 這是DRAW 的Tcl路徑?jīng)]找到報(bào)錯(cuò),這個(gè)路徑也是通過(guò)環(huán)境變量來(lái)配置的。
建議還是用批處理來(lái)啟動(dòng)DRAWEXE。
Best Regards,
Shing Liu
博主您好,
我現(xiàn)在使用的是OCC7.2版本的,我試著編譯打開(kāi)MFC的案例,發(fā)現(xiàn)里面的貼圖功能最后貼出來(lái)的圖是黑色的(瓶子,地圖,廚房被貼的地方都是黑色的),沒(méi)有效果,不知道是什么原因?是我沒(méi)配置好,還是OCC這方面功能還不完善?
@birds
Hello,
有可能是顯卡支持的不好。
在Draw Test Harness中輸入命令:
vglinfo
看看你的顯卡信息。
On desktop, 3D viewer for optimal performance requires graphics processing unit (GPU) supporting OpenGL 3.3 or above. Ray tracing requires OpenGL 4.0+ or OpenGL 3.3+ with GL_ARB_texture_buffer_object_rgb32 extension. Textures within ray tracing will be available only when GL_ARB_bindless_texture extension is provided by driver.
On mobile platforms, OpenGL ES 2.0+ is required for 3D viewer (OpenGL ES 3.1+ is recommended). The ray tracing is not yet available on mobile platforms. Some old hardware might be unable to execute complex GLSL programs (e.g. with high number of light sources, clipping planes).
OCCT 3D Viewer, in general, supports wide range of graphics hardware - from very old to new. Therefore, if you observe some unexpected visual issues - first check for OpenGL driver update (or firmware update in case of mobile platforms); but beware that driver update might also come with new bugs. Don't forget to report these bugs to vendors.
博主您好,
您能幫我看下嗎,這是什么問(wèn)題?
Draw[1]> pload ALL
1
Draw[2]> vinit
Driver1/Viewer1/View1
Draw[3]> vglinfo
OpenGL info:
GLvendor: ATI Technologies Inc.
GLdevice: AMD Radeon(TM) R7 350X
GLversion: 4.6.13547 Compatibility Profile Context 25.20.15025.1002
GLSLversion: 4.60
Max texture size: 16384
Max combined texture units: 160
Max MSAA samples: 8
Viewport: 409x409
GPU memory: 4096 MiB
ResolutionRatio: 1
@birds
可以按OCC文檔上的說(shuō)明,先更新顯卡驅(qū)動(dòng)試試。