我花了好几个小时来解决这个问题,现在我在这里张贴这个。所以我使用的是Ubuntu 12.04,并从源代码中安装了gnuplot 4.6.6(我发现gnuplot 4.4也存在同样的问题)。最初我的问题是similar to this one。然后我按照答案安装了源代码中的所有软件包。但是在我开始使用gnuplot之后获得了很好的wxt终端之后,我在屏幕上看到了以下消息:
./src/gtk/dcclient.cpp(2043): assert "m_window" failed in DoGetSize(): GetSize() doesn't work without window [in thread b47ffb40]
Call stack:
[00] wxOnAssert(char const*, int, char const*, char const*, wchar_t const*)
[01] wxClientDCImpl::DoGetSize(int*, int*) const
[02] wxBufferedDC::UnMask()
[03] ~wxDC /usr/local/include/wx-3.0/wx/dc.h:789
[04] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[05] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[06] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[07] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[08] wxEvtHandler::TryHereOnly(wxEvent&)
[09] wxEvtHandler::ProcessEventLocally(wxEvent&)
[10] wxEvtHandler::ProcessEvent(wxEvent&)
[11] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[12] wxWindowBase::HandleWindowEvent(wxEvent&) const
[13] wxWindow::GTKProcessEvent(wxEvent&) const
[14] 0xb730e122
[15] g_cclosure_marshal_VOID__BOXED
[16] g_closure_invoke
[17] 0xb6d8f0d9
[18] g_signal_emit_valist
[19] g_signal_emit
[20] gtk_widget_size_allocate
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
gnuplot: ../../src/xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.
Aborted (core dumped)
经过一些Google搜索,我找到了this one。这说明如下:
The fix is trivial. Change the line "USE_WX= 3.0" back to "USE_WX= 2.8"
(reverting one of the changes made in the most recent commit). Doing so
restores gnuplot to proper function with wx.
所以我重新安装了版本为2.8.12的wxWidgets。但是我不知道如何更改线路'如上所述。这条线在哪里?怎么改呢?那会有用吗?请帮忙。感谢
答案 0 :(得分:1)
确实,gnuplot目前不能使用wxWidgets 3.0,请参阅错误报告#1401 changes needed in order to support wxWidgets 3.0。
你链接的帖子是指FreeBSD和他们拥有的Makefile。如果你从头开始构建它应该再次运行./configure
,然后选择wxwidgets 2.8。