未明确引用wxGLCanvas'构造函数?

时间:2016-09-24 20:48:43

标签: c++ wxwidgets deprecated undefined-reference

我使用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的构造函数的未定义引用。我知道有一个构造函数已被弃用,但我似乎正在使用http://docs.wxwidgets.org/3.0/classwx_g_l_canvas.html中所见的不是wxGLCanvas(<frame>,wxID_ANY,NULL)的构造函数。

链接器错误的其余部分都是对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,它似乎已标记为已弃用。是否有比我链接的文件更新的文件?

1 个答案:

答案 0 :(得分:1)

wx-config --libs等同于wx-config --libs std,其中“std”代表被认为默认使用的“标准”库的子集。如果您想使用此列表中没有的任何库,例如“webview”,“richtext”或“gl”,则需要明确列出它们。

因此,在您的案例中使用的正确命令是wx-config --libs std,gl