我正在尝试编译一个使用wxWidgets的程序。当我运行"make"
时,它会返回给我:
Building target using GCC compiler: sources/geometry-manager.cpp
g++ -g -c sources/geometry-manager.cpp -std=c++17 -w -c -rdynamic -W `wx-config --cxxflags --libs --gl-libs` `geos-config --cflags` -lgeos -lglut -lGLU -lGL -lm -lGLEW -o builded/geometry-manager.o `pkg-config --libs geographiclib`
g++: error: /usr/local/lib/libwx_gtk3u_gl-3.1.a: No such file or directory
make: *** [Makefile:37: builded/geometry-manager.o] Erro 1
我使用的是Ubuntu 20.04(Linux 5.8.0-55-generic(
wx-config --version-full
返回3.1.5.0
wx-config --selected-config
返回gtk3-unicode-static-3.1
libgtk-3-dev
已安装
该程序是在其他计算机上编译的。我相信我安装了一些依赖程序。错误的
文件libwx_gtk3u_gl-3.1.a在我的文件系统中不存在。但我找不到下载文件。
非常感谢
wx-config --cxxflags --libs std,gl
返回:
-I/usr/local/lib/wx/include/gtk3-unicode-static-3.1 -I/usr/local/include/wx-3.1 -D_FILE_OFFSET_BITS=64 -D__WXGTK__ -pthread
-L/usr/local/lib -pthread /usr/local/lib/libwx_gtk3u_gl-3.1.a /usr/local/lib/libwx_gtk3u_xrc-3.1.a /usr/local/lib/libwx_gtk3u_qa-3.1.a /usr/local/lib/libwx_baseu_net-3.1.a /usr/local/lib/libwx_gtk3u_html-3.1.a /usr/local/lib/libwx_gtk3u_core-3.1.a /usr/local/lib/libwx_baseu_xml-3.1.a /usr/local/lib/libwx_baseu-3.1.a -lgthread-2.0 -pthread -lX11 -lSM -lgtk-3 -lgdk-3 -lpangocairo-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lXtst -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype -lwxtiff-3.1 -lwxjpeg-3.1 -lwxregexu-3.1 -lwxscintilla-3.1 -lexpat -lpng -lz -ldl -lm
libwxgtk3.0-gtk3-dev
已经是最新版本(3.0.4+dfsg-15build1(
成功:我重新安装了wxWidgets。现在,openGL在安装时被识别出来,并且它起了作用。
您一定自己构建了wxWidgets,但在配置它时,configure没有找到所需的OpenGL头文件/库,因此OpenGL支持被禁用,您可以通过查看它创建的config.log
文件来确认。您也可以在同一个文件中找到失败原因的详细信息,但您可能只需要apt install libgl1-mesa-dev libglu1-mesa-dev
(当然,还需要重新运行configure和make && make install
,以实际构建和安装wx的OpenGL部分(。
您可能还希望使用--with-opengl
选项显式运行configure,因为在这种情况下,如果OpenGL库不可用,您将得到一个错误,而不是默认情况下得到的警告。