2017-09-15 56 views
0

我使用w :: widgets的Code :: Blocks。一般來說,我有一個類似於here的問題。好的,我將mathplot.hmathplot.cpp複製到項目目錄中,將這些文件添加到項目中,並在所有自動生成的(非空項目)wxWidgets cpp文件中執行#include mathplot.h。然而,當我嘗試編譯它給我的錯誤:使用wxMathplot和代碼:: blocks

/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); 
+0

@ravenspoint我在'test_App.cpp'和'test_Main.cpp'中添加了'#include mathplot.h',它們是在code :: blocks中爲非空wxWidget項目(稱爲測試)自動生成的,它們也具有相應的.h文件。不過,當我僅添加'mathpot.h'和'mathplot.cpp'文件並且不在任何地方使用'#include mathplot.h'時,該項目不會編譯。 – Pekov

+1

「'wxString :: wxString(int)'是private |」應該有更多的信息,特別是「在這方面需要」。請發佈您的編譯器提供的所有信息。 – ravenspoint

+1

是的,我記得這一點。 mpWindow :: SaveScreenshot()不再有效。將添加我的「修復」 – ravenspoint

回答

2

mpWindow :: SaveScreenshot()不再有效。由於我沒有使用該功能,我只是將最後一行註釋掉了

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

這使我的項目能夠編譯和使用其他功能。

看來您正在使用長時間未維護的wxMathPlot版本。也許你應該嘗試下載the version on github這看起來更近,並看看你如何繼續。

+0

謝謝,我做了你的建議,但現在它給了我這個: 從/home/pekov/Workshop/Code::Blocks/test_01/mathplot.cpp:36:0包含的文件:在成員函數'void mpMovableObject :: ShapeUpdated()'中: /usr/include/wx-3.1-unofficial/wx/log.h: 1254:5:錯誤:在' 之前爲'預期的id表達式(bool loopvar = false; – Pekov