我使用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,它似乎已标记为已弃用。是否有比我链接的文件更新的文件?
答案 0 :(得分:1)
wx-config --libs
等同于wx-config --libs std
,其中“std”代表被认为默认使用的“标准”库的子集。如果您想使用此列表中没有的任何库,例如“webview”,“richtext”或“gl”,则需要明确列出它们。
因此,在您的案例中使用的正确命令是wx-config --libs std,gl
。