vtk開發過程中常常遇到的一些問題,比如:no override found for 『…』 這種錯誤,如果沒有用cmake編譯肯定會出現,並且不好查,這些錯誤常常讓人摸不著頭腦。
1.文字未顯示:
現象:在vtk中使用vtktextactor或vtkactor2d類顯示文字,結果文字未顯示出來;
解決方法:在程式上方加上 vtk_module_init( vtkrenderingfreetype )
2.編譯出現錯誤:no override found for 『…』
解決方法:在程式上方加上
#include
vtk_module_init( vtkrenderingopengl );
這裡強調下,很多情況下,no override顯示的是vtkrender vtkrenderwindow等,但是只需要加上vtkrenderingopengl的初始化就可以了,這類問題出現的原因是使用本地編譯器編譯原始碼,很多巨集沒有定義,需要用cmake重新生成工程,配置正確並編譯。
3.執行出現錯誤:vtklookuptable [0000000a494850]:bad table range:[1e+010,-1e+010]
原因:vtklookuptable範圍設定錯誤,setrange( double min, double max )引數min比max小
解決方法:正確設定setrange(…)函式的引數
解決方法:在main函式前加上
vtk_module_init( vtkrenderin**olumeopengl );
5.執行時出現錯誤:vtktrivialproducer (0000000009584f50): this data object does not contain the requested extent.
原因:使用vtkimagereslice,設定完後未呼叫update()方法;
解決方法:pimagereslice->update();
備註:其他類出現此錯誤同此解決方法。
6.執行時出現錯誤:vtkopengltexture (0000000002540430): no scalar values found for texture input!
原因:建立vtktextactor時,未呼叫setinput()方法;或呼叫setinput()方法,引數給的空字串。這都相當於建立了乙個空vtktextactor,導致該錯誤發生。
解決方法:建立vtktextactor時進行初始化,即呼叫setinput()方法,且必須給出引數,哪怕是乙個空格字元創。
7.執行時出現錯誤:invalid pixel format, no opengl support
解決方法:不要在qvtkwidget的子類建構函式中建立需要render(渲染)的物件,在使用時進行渲染。
8.執行時警告:warning: link to vtkinteractionstyle for default style selection.
解決方法:在main函式前加上 vtk_module_init( vtkinteractionstyle );
9.執行時,x::new() 返回null
解決方法:
#define vtkrenderingcore_autoinit 4(vtkinteractionstyle,vtkrenderingfreetype,vtkrenderingfreetypeopengl,vtkrenderingopengl)
#define vtkrenderin**olume_autoinit 1(vtkrenderin**olumeopengl)
VTK 在linux下編譯VTK
3 cd vtk build ccmake home jack software vtk 8.2.0 vtk 8.2.0 在鍵盤上按下 c 會出現下面的介面 cmake install prefix表示庫檔案和標頭檔案要存放的位置 如果看到可以按下g 按下g進行生成 4 使用make進行編譯 mak...
VTK 安裝編譯
vtk 安裝編譯 參照 安裝 編譯,測試例子。1.cmakelists.txt指令碼的寫法 cmake minimum required version 3.0 用於指定構建工程時所需的cmake版本要求 project testvtkinstall 工程名與後面的 相對應 find package...
VTK交叉編譯報錯
一開始就可以報錯!找不到 x11 或者找不到 什麼軟體,其實我之前只是簡單的手動的去找!其實我應該不用手動的去找這些,而是根據它的報錯,直接到相應的cmake中,找相應的路徑去修改!cmake 主要是 標頭檔案 件 以及它的路徑位置,還有一些庫檔案的路徑的。最終總結一下問題,就是多學學cmake 的...