11

Linux で VTK をビルドすると、次のエラーが発生します。

In file included from /usr/include/GL/glx.h:333:0,
             from /home/mildred/Work/3DKF/VTK/Rendering/vtkXOpenGLRenderWindow.cxx:31:
/usr/include/GL/glxext.h:480:143: error: ‘GLintptr’ has not been declared
4

1 に答える 1

26

GLX_GLXEXT_LEGACY解決策は、ビルド中に定義することです。Rendering/vtkXOpenGLRenderWindow.cxxこれは行われますが、VTK 5.x またはRendering/OpenGL/vtkXOpenGLRenderWindow.cxxVTK 6.xのファイルでコメントされています。

行のコメントを外します (これは、たとえば、パッケージの ArchLinux パッチです):

--- a/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx.orig  2014-11-23 22:16:50.000000000 +0100
+++ b/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx   2014-11-23 22:16:59.000000000 +0100
@@ -27,7 +27,7 @@

 // define GLX_GLXEXT_LEGACY to prevent glx.h to include glxext.h provided by
 // the system
-//#define GLX_GLXEXT_LEGACY
+#define GLX_GLXEXT_LEGACY
 #include "GL/glx.h"

 #include "vtkgl.h"

または、ソース コードに影響を与えたくない場合は、フラグをコンパイラ コマンド ラインに追加できます。たとえば-DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY -DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY、cmake コマンド ラインに追加します。cmake コマンドは次のようになります。

cmake -DCMAKE_C_FLAGS=-DGLX_GLXEXT_LEGACY -DCMAKE_CXX_FLAGS=-DGLX_GLXEXT_LEGACY -Wno-dev ../VTK
于 2015-02-27T09:34:56.023 に答える