我正在尝试学习 wxWidgets 框架,因为我被分配从事一个已经使用该库的项目。
我在 Raspberry Pi 上使用它,并使用 sudo apt-get install libwxgtk2.8-dev libwxgtk2.8-dbg 安装它。
我在 wxWidgets 网站上找到了 this 教程并将其粘贴到我的 Pi 上名为 hello.cpp 的文件中。
然后我运行 g++ hello.cpp -o hellowx-config --cxxflags --libs` 并收到以下巨大的错误消息:
gcc hello.cpp -o hello `wx-config --cxxflags --libs`
hello.cpp:20:27:错误:ISO C++ 禁止声明没有类型的“wxDECLARE_EVENT_TABLE”[-fpermissive]
hello.cpp:27:5:错误:在‘wxEventTableEntry’之前需要构造函数、析构函数或类型转换
hello.cpp:在成员函数“virtual bool MyApp::OnInit()”中:
hello.cpp:34:84:错误:从“const char [12]”到“const wxString”的转换不明确
hello.cpp:34:84: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [12]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [12]”到“int”的转换
hello.cpp:15:5:错误:正在初始化“MyFrame::MyFrame(const wxString&, const wxPoint&, const wxSize&)”的参数 1
hello.cpp:在构造函数“MyFrame::MyFrame(const wxString&, const wxPoint&, const wxSize&)”中:
hello.cpp:43:74:错误:从“const char [17]”到“const wxString”的转换不明确
hello.cpp:43:74: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [17]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [17]”到“int”的转换
/usr/include/wx-2.8/wx/menu.h:62:17:错误:初始化参数 2'wxMenuItem* wxMenuBase::Append(int, const wxString&, const wxString&, wxItemKind)'
hello.cpp:49:40:错误:从“const char [6]”到“const wxString”的转换不明确
hello.cpp:49:40: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [17]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [17]”到“int”的转换
/usr/include/wx-2.8/wx/menu.h:62:17:错误:初始化参数 2'wxMenuItem* wxMenuBase::Append(int, const wxString&, const wxString&, wxItemKind)'
hello.cpp:49:40:错误:从“const char [6]”到“const wxString”的转换不明确
hello.cpp:49:40: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
hello.cpp:20:27:错误:ISO C++ 禁止声明没有类型的“wxDECLARE_EVENT_TABLE”[-fpermissive]
hello.cpp:27:5:错误:在‘wxEventTableEntry’之前需要构造函数、析构函数或类型转换
hello.cpp:在成员函数“virtual bool MyApp::OnInit()”中:
hello.cpp:34:84:错误:从“const char [12]”到“const wxString”的转换不明确
hello.cpp:34:84: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [12]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [12]”到“int”的转换
hello.cpp:15:5:错误:正在初始化“MyFrame::MyFrame(const wxString&, const wxPoint&, const wxSize&)”的参数 1
hello.cpp:在构造函数“MyFrame::MyFrame(const wxString&, const wxPoint&, const wxSize&)”中:
hello.cpp:43:74:错误:从“const char [17]”到“const wxString”的转换不明确
hello.cpp:43:74: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [17]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [17]”到“int”的转换
/usr/include/wx-2.8/wx/menu.h:62:17:错误:初始化参数 2'wxMenuItem* wxMenuBase::Append(int, const wxString&, const wxString&, wxItemKind)'
hello.cpp:49:40:错误:从“const char [6]”到“const wxString”的转换不明确
hello.cpp:49:40: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [6]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [6]”到“int”的转换
/usr/include/wx-2.8/wx/gtk/menu.h:27:18: 错误:正在初始化‘virtual bool wxMenuBar::Append(wxMenu*, const wxString&)’的参数 2
hello.cpp:50:40:错误:从“const char [6]”到“const wxString”的转换不明确
hello.cpp:50:40: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [6]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [6]”到“int”的转换
/usr/include/wx-2.8/wx/gtk/menu.h:27:18: 错误:正在初始化‘virtual bool wxMenuBar::Append(wxMenu*, const wxString&)’的参数 2
hello.cpp:53:44:错误:从“const char [22]”到“const wxString”的转换不明确
hello.cpp:53:44: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [22]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [22]”到“int”的转换
/usr/include/wx-2.8/wx/frame.h:110:18:错误:正在初始化“virtual void wxFrameBase::SetStatusText(const wxString&, int)”的参数 1
hello.cpp:在成员函数‘void MyFrame::OnAbout(wxCommandEvent&)’中:
hello.cpp:62:66:错误:从“const char [40]”到“const wxString”的转换不明确
hello.cpp:62:66: 注意:候选人是:
/usr/include/wx-2.8/wx/string.h:692:3: 注意: wxString::wxString(wxChar, size_t)
/usr/include/wx-2.8/wx/string.h:692:3:注意:没有已知的参数 1 从“const char [40]”到“wxChar {aka wchar_t}”的转换
/usr/include/wx-2.8/wx/string.h:682:3: 注意:wxString::wxString(int)
/usr/include/wx-2.8/wx/string.h:682:3:注意:没有已知的参数 1 从“const char [40]”到“int”的转换
/usr/include/wx-2.8/wx/msgdlg.h:70:17:错误:初始化参数 1'int wxMessageBox(const wxString&, const wxString&, long int, wxWindow*, int, int)'
hello.cpp:在成员函数“void MyFrame::OnHello(wxCommandEvent&)”中:
hello.cpp:66:47:错误:无法将参数“1”的“const char*”转换为“const wxChar* {aka const wchar_t*}”到“void wxLogMessage(const wxChar*, ...)”
似乎是从char* 类型转换为wxString 类型的问题。有没有办法解决这个问题?一个官方示例会出现所有这些错误似乎很奇怪,我是否正确编译它?