我用了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 构造函数的 undefined reference 。我知道一个构造函数已被弃用,但我似乎正在使用一个不是的构造函数:wxGLCanvas(<frame>,wxID_ANY,NULL)
如 http://docs.wxwidgets.org/3.0/classwx_g_l_canvas.html 中所示.
其余的链接器错误都是对wxGLCanvas各种方法的 undefined reference 。为了安全起见,我添加了 -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,它似乎已被标记为已弃用。是否有比我链接的文档更新的文档?
最佳答案
wx-config --libs
等同于 wx-config --libs std
,其中“std”代表“标准”库的子集,被认为是默认使用。如果您想使用任何不在此列表中的库,例如“webview”、“richtext”或实际上是“gl”,您需要明确列出它们。
因此在您的情况下使用的正确命令是 wx-config --libs std,gl
。
关于c++ - 未定义对 wxGLCanvas 构造函数的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39680838/