我一直在尝试让 wxWidgets 程序在 Ubuntu 18.04 上编译。当时,我的 RTX 2080 还没有到来,同时我正在使用同事的 1060。上周五,我终于能够编译我正在编写的程序并让它运行,这需要 OpenCL 和 OpenGL 库。我安装了这些我认为程序运行所需的库:
mesa-utils libeglw1-mesa libglw1-mesa-dev freeglut3-dev freeglut3 ocl-icd-opencl-dev
我还安装了 NVIDIA 的 Cuda 10 库。
我的 RTX 2080 终于来了,我安装了显卡,但只有一台显示器的分辨率很糟糕,我意识到我需要下载官方 NVIDIA 驱动程序。一旦我安装了这些,我的显示器就恢复正常了。但是,现在当我尝试运行该程序时,出现错误:
(Program:18499): Gdk-ERROR **: 09:45:23.055: The program 'Program' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
(Details: serial 228 error_code 2 request_code 151 (GLX) minor_code 3)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Trace/breakpoint trap
这可能是程序中的一个合法错误,但是,我有点奇怪为什么在 2080 年之前我的程序运行得很好。我尝试过像这样运行 GDB:
GDK_SYNCHRONIZE="1" gdb ./Program
但是,我真的不知道在程序的哪里中断,如果我尝试在 GDB 上设置断点,则gdk_x_error()
无法找到要中断的函数。所以现在我不知道该去哪里。我真的不想重新安装我的发行版,但如果必须的话我会的。当我搜索错误时,我被引导到这个网站:https://github.com/cjcliffe/CubicSDR/issues/569,该线程中有人说:
“在互联网上快速搜索表明存在与 GLX 库与驱动程序(Intel、Nvidia)相关的问题,并重新安装它们。另请注意,wxWidgets 3.11 必须使用 OpenGL 支持进行编译,CubicSDR 才能工作。”
但是我不确定该错误是否特定于 CubicSDR 或者这是否是同一问题。有人对我可以尝试什么有什么想法吗?