在Code :: Blocks中设置wxWidgets?

时间:2012-01-19 16:16:30

标签: c++ wxwidgets codeblocks

我正在尝试使这段代码工作,但我不能。我希望它可以运行,所以我可以在我的其他项目中使用它。我刚刚在网上看到了这个。这是关于wxOGL。

#include <wx/wx.h>
#include <wx/ogl/ogl.h>
#include <wx/cursor.h>

class MyApp: public wxApp
{
    virtual bool OnInit();
};

class MyFrame: public wxFrame
{
    wxDiagram * diagram;
    wxShape * shape;

public:

    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
    ~MyFrame();
};

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame(_("wxWidgets - Object Graphics Library"),
                             wxPoint(50, 50), wxSize(450, 340) );
    frame->Show(TRUE);
    SetTopWindow(frame);
    return TRUE;
}

MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
    wxShapeCanvas *canvas = new wxShapeCanvas(this, wxID_ANY, pos, size, 0, _T("a"));

    canvas->SetBackgroundColour(*wxWHITE);
    canvas->SetCursor(wxCursor(wxCURSOR_CROSS));

    diagram = new wxDiagram();

    canvas->SetDiagram(diagram);

    shape = new wxCircleShape(20.0);
    shape->SetX(25.0);
    shape->SetY(25.0);
    canvas->AddShape(shape);

    diagram->ShowAll(1);
}

MyFrame::~MyFrame()
{
    delete shape;
    delete diagram;
}

我不知道它的作用,我只是想看看它。当我在Code :: Blocks中编译它时,它会一直返回错误,说“wx / wx.h:没有这样的文件目录”和其他错误。有人能解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

  

wx / wx.h:没有这样的文件目录“

您的编译器无法找到您的wxWidgets安装。 Code ::阻止人have some documentation for setting that up

答案 1 :(得分:1)

该错误意味着要么没有正确安装wxWidgets开发文件,要么您的项目设置已损坏。

答案 2 :(得分:1)

这样的包通常会使用配置脚本来指定编译/链接器参数。因此,如果您只是从命令行使用gcc编译器:

g++ `wx-config --cflags` `wx-config --libs` -lwx_gtk2u_ogl-2.8 test.cpp -o test

在Code :: Blocks中,您只需右键单击项目,Build Options ...,在左侧窗口中选择项目名称(如果在下一步中突出显示Release / Debug,则更改将仅适用于Release或Debug版本),Compiler-Settings选项卡,Other-options选项卡和insert:

`wx-config --cflags`

然后选择Linker-settings选项卡,在Other-linker-options窗口中添加:

`wx-config --libs` -lwx_gtk2u_ogl-2.8

这两件事通常会在C :: B中为你设置(除了OGL库)。 此外,该程序使用对象图形库(OGL),它不是wxWidgets基本集的一部分,因此您还必须明确包含以下内容:

  

-lwx_gtk2u_ogl-2.8

请记住-2.8部分是您机器上可能不同的版本号。你可以通过发出命令(linux)来确定你的版本(假设它已安装):

  

找到/ usr / lib | grep -i wx | -i ogl

将在您的用户库区域中找到名称中包含“wx”和“ogl”的所有文件。

祝你好运 /艾伦