opengl2 vtk 編譯 VTK開發錯誤處理

2021-10-16 23:21:58 字數 1762 閱讀 2311

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 的...