在Code::Blocks中设置wxWidgets

Setting up wxWidgets in Code::Blocks?

本文关键字:设置 wxWidgets Blocks Code      更新时间:2023-10-16

我正在努力让这段代码正常工作,但我做不到。我希望它能运行,这样我就可以在我的另一个项目中使用它。我刚在网上看到这个。这是关于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:no such file directory"和其他错误。有人能解决这个问题吗?

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

编译器找不到wxWidgets安装。代码::阻止人们有一些设置文档。

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

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

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

在代码::块中,您只需右键单击项目,生成选项。。。,在左侧窗口的"编译器设置"选项卡、"其他选项"选项卡中选择项目名称(如果在执行下一步时突出显示"发布/调试",则更改仅针对"发布"或"调试"版本),然后插入:

`wx-config --cflags`

然后选择"链接器设置"选项卡,并在"其他链接器选项"窗口中添加:

`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"answers"ogl"的所有文件。

祝你好运/Alan