【问题标题】:Using wxMathplot with code::blocks使用 wxMathplot 和 code::blocks
【发布时间】:2018-02-24 18:08:21
【问题描述】:

我正在使用带有 wxWidgets 的 Code::Blocks。一般来说,我有一个类似于here 描述的问题。好的,所以我将mathplot.hmathplot.cpp 复制到项目目录中,将这些文件添加到项目中并在所有自动生成的(非空项目)wxWidgets cpp 文件中执行#include mathplot.h。然而,当我尝试编译时,它给了我错误:

/usr/include/wx-3.1-unofficial/wx/string.h|303|error: ‘wxString::wxString(int)’ is private|

如何解决这个问题并最终在 code::blocks 中使用 wxMathPlot?

这是与错误相关的编译器日志:

/usr/include/wx-3.1-unofficial/wx/string.h: In member function ‘bool mpWindow::SaveScreenshot(const wxString&, int, wxSize, bool)’:

/usr/include/wx-3.1-unofficial/wx/string.h:303:3: error: ‘wxString::wxString(int)’ is private
   wxString(int); 

/home/pekov/Workshop/Code::Blocks/tester/mathplot.cpp:2239:47: error: within this context
     return screenImage.SaveFile(filename, type);

【问题讨论】:

  • @ravenspoint 我在test_App.cpptest_Main.cpp 中添加了#include mathplot.h,它们是在code::blocks 中为非空wxWidget 项目(称为test)自动生成的,它们也有相应的.h 文件.然而,当我只添加 mathpot.hmathplot.cpp 文件并且不在任何地方使用 #include mathplot.h 时,项目无法编译。
  • "'wxString::wxString(int)' 是私有的|"应该有更多信息,特别是“在这种情况下需要”。请发布您的编译器提供的所有信息。
  • 是的,我记得这个。 mpWindow::SaveScreenshot() 不再有效。将添加我的“修复”

标签: codeblocks wxwidgets wxmathplot


【解决方案1】:

mpWindow::SaveScreenshot() 不再有效。由于我不使用该功能,所以我只是将最后一行注释掉

//    return screenImage.SaveFile(filename, type);

这允许我的项目编译和使用其他功能。

看来您使用的 wxMathPlot 版本已经很久没有维护了。或许您应该尝试下载看起来更新的the version on github,然后看看您是如何处理的。

【讨论】:

  • 谢谢,我按照你的建议做了,但现在它给了我这个:在 /home/pekov/Workshop/Code::Blocks/test_01/mathplot.cpp:36:0 包含的文件中: /home/pekov/Workshop/Code::Blocks/test_01/mathplot.cpp:在成员函数'void mpMovableObject::ShapeUpdated()'中:/usr/include/wx-3.1-unofficial/wx/log.h:1254: 5:错误:'for' for (bool loopvar = false; 之前的预期 id 表达式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多