나는 우분투 18.04에서 컴파일하기 위해 wxWidgets 프로그램을 얻으려고 노력해 왔습니다. 당시 제 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)와 관련된 문제가 있는 것으로 나타났습니다. 이를 다시 설치하면 됩니다. 또한 CubicSDR이 작동하려면 wxWidgets 3.11이 OpenGL 지원과 함께 컴파일되어야 한다는 점에 유의하세요."
하지만 이 오류가 CubicSDR에만 국한된 것인지, 아니면 동일한 문제인지는 확실하지 않습니다. 내가 무엇을 시도할 수 있는지에 대한 아이디어가 있는 사람이 있나요?