对 wxGLCanvas 构造函数的未定义引用?

Undefined reference to wxGLCanvas' constructor?

本文关键字:引用 未定义 wxGLCanvas 构造函数      更新时间:2023-10-16

我使用wx-config --libs为我的应用程序生成链接器参数,输出如下:

-L/usr/lib/x86_64-linux-gnu -pthread -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0

我的应用程序编译了,但没有链接,而是引用了对wxGLCanvas构造函数的未定义引用。我知道一个构造函数被弃用了,但我似乎正在使用一个不是:wxGLCanvas(<frame>,wxID_ANY,NULL),如http://docs.wxwidgets.org/3.0/classwx_g_l_canvas.html.

所示。

其余的链接器错误都是对wxGLCanvas的各种方法的未定义引用。为了安全起见,我在所有目标中都加入了-DwxUSE_GLCANVAS=1,但这没有效果。我做错了什么?

如果它是相关的,我也使用wx-config --cflags在编译期间:

-I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread

还要注意文档仍然建议使用SetCurrent,它似乎被标记为deprecated。还有比我链接的那些更近期的文件吗?

wx-config --libs相当于wx-config --libs std,其中"std"代表默认使用的"标准"库的子集。如果你想使用列表中没有的库,如"webview","richtext"或"gl",你需要显式列出它们。

所以在你的情况下正确使用的命令是wx-config --libs std,gl