linux - 在 Linux 上构建 VTK 时出现错误 "GLintptr has not be

在 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

最佳答案

解决方案是在构建期间定义GLX_GLXEXT_LEGACY。这已完成,但在文件 Rendering/vtkXOpenGLRenderWindow.cxx (用于 VTK 5.x)或 Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx (用于 VTK 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

关于linux - 在 Linux 上构建 VTK 时出现错误 "GLintptr has not been declared",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28761702/

相关文章:

qt - 在 Ubuntu Linux 上构建 QT 库

visual-studio - 成功构建完成后如何获得通知?

build - cmake 创建一个共享对象

maven-2 - 在 Maven 中覆盖 'clean' 生命周期

visual-studio - 使用 cmake 和命令行构建 MSVC 项目

xcode - 如何在 Xcode 项目包中排除图像文件,有条件地用于发布版本?

testing - Cabal 输出被重定向但未生成

c# - "Build"构建我的项目,"Build Solution"没有

build - 如何重建已下载的已编辑 perl6 模块?

build - bmake的优点