wordpress顯示輪播圖深圳市seo上詞多少錢(qián)
1,選擇使用 wxWidgets 框架
選擇這個(gè)主要是因?yàn)橥耆拈_(kāi)源,不想折騰 Qt的庫(kù),而且打包的文件比較大。
網(wǎng)絡(luò)上面有很多的對(duì)比,而且使用QT的人比較多。
但是我覺(jué)得wxwidgets 更加偏向 c++ 語(yǔ)法本身,也有助學(xué)習(xí)C++。
沒(méi)有太多的特殊封裝,而且商業(yè)化更加友好,打包軟件也比較少。
更偏向原生的系統(tǒng),做好相關(guān)的功能開(kāi)發(fā)。
2,在 ubuntu上進(jìn)行安裝320版本環(huán)境
https://www.wxwidgets.org/downloads/
https://docs.codelite.org/wxWidgets/repo320/
先增加證書(shū)授權(quán):
# 增加簽名
sudo apt-key adv --fetch-keys https://repos.codelite.org/CodeLite.asc#2 安裝源
# 生成一個(gè)文件 /etc/apt/sources.list.d/archive_uri-https_repos_codelite_org_wx3_2_ubuntu_-jammy.list
# 不需要可以刪除掉
sudo apt-add-repository 'deb https://repos.codelite.org/wx3.2/ubuntu/ jammy universe'#3,安裝庫(kù)
apt-get install libwxbase3.2-0-unofficial \libwxbase3.2unofficial-dev \libwxgtk3.2-0-unofficial \libwxgtk3.2unofficial-dev \wx3.2-headers \wx-common \libwxgtk-media3.2-0-unofficial \libwxgtk-media3.2unofficial-dev \libwxgtk-webview3.2-0-unofficial # 特別奇怪,其余的庫(kù)要一個(gè)一個(gè)進(jìn)行安裝,不能批量執(zhí)行。
sudo apt-get install libwxgtk-webview3.2unofficial-dev
sudo apt-get install libwxgtk-webview3.2-0-unofficial-dbg
sudo apt-get install libwxbase3.2-0-unofficial-dbg
3,解決編譯問(wèn)題 undefined reference to `pcre2_config_32’|
||=== Build: Debug in demo02 (compiler: GNU GCC Compiler) ===|
||warning: libpcre2-32.so.0, needed by /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so, not found (try using -rpath or -rpath-link)|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_config_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_code_free_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_get_ovector_pointer_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_match_data_create_from_pattern_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_compile_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_match_data_free_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_match_32'|
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libwx_baseu_unofficial-3.2.so||undefined reference to `pcre2_get_error_message_32'|
||error: ld returned 1 exit status|
||=== Build failed: 9 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
終于找到問(wèn)題,通過(guò)安裝 libpcre2-dev 解決
sudo apt install libpcre2-dev
4,第一個(gè)hello world,并進(jìn)行編譯
參考在線手冊(cè):
https://docs.wxwidgets.org/3.2/
第一個(gè)hello world 文檔:
https://docs.wxwidgets.org/3.2/overview_helloworld.html
// wxWidgets "Hello World" Program// For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h>#ifndef WX_PRECOMP#include <wx/wx.h>
#endifclass MyApp : public wxApp
{
public:virtual bool OnInit();
};class MyFrame : public wxFrame
{
public:MyFrame();private:void OnHello(wxCommandEvent& event);void OnExit(wxCommandEvent& event);void OnAbout(wxCommandEvent& event);
};enum
{ID_Hello = 1
};wxIMPLEMENT_APP(MyApp);bool MyApp::OnInit()
{MyFrame *frame = new MyFrame();frame->Show(true);return true;
}MyFrame::MyFrame(): wxFrame(NULL, wxID_ANY, "Hello World")
{wxMenu *menuFile = new wxMenu;menuFile->Append(ID_Hello, "&Hello...\tCtrl-H","Help string shown in status bar for this menu item");menuFile->AppendSeparator();menuFile->Append(wxID_EXIT);wxMenu *menuHelp = new wxMenu;menuHelp->Append(wxID_ABOUT);wxMenuBar *menuBar = new wxMenuBar;menuBar->Append(menuFile, "&File");menuBar->Append(menuHelp, "&Help");SetMenuBar( menuBar );CreateStatusBar();SetStatusText("Welcome to wxWidgets!");Bind(wxEVT_MENU, &MyFrame::OnHello, this, ID_Hello);Bind(wxEVT_MENU, &MyFrame::OnAbout, this, wxID_ABOUT);Bind(wxEVT_MENU, &MyFrame::OnExit, this, wxID_EXIT);
}void MyFrame::OnExit(wxCommandEvent& event)
{Close(true);
}void MyFrame::OnAbout(wxCommandEvent& event)
{wxMessageBox("This is a wxWidgets Hello World example","About Hello World", wxOK | wxICON_INFORMATION);
}void MyFrame::OnHello(wxCommandEvent& event)
{wxLogMessage("Hello world from wxWidgets!");
}
進(jìn)行編譯:
c++ -o main main.cpp `wx-config --cxxflags --libs`
然后運(yùn)行main
5,使用工具 codeblocks 進(jìn)行開(kāi)發(fā)
https://www.codeblocks.org/
https://www.codeblocks.org/downloads/binaries/
直接通過(guò)下載文件安裝,或者apt 安裝即可。
sudo apt install -y codeblocks
命令就是 codeblocks
可以按照模板,創(chuàng)建一個(gè) wxWidgets的項(xiàng)目。
運(yùn)行效果:
6,總結(jié)
已經(jīng)有人總結(jié)了項(xiàng)目
https://www.bilibili.com/video/BV1y3411477j/
wxwidgets跨平臺(tái)GUI框架使用入門(mén)詳解
PDF資料:
https://pan.baidu.com/s/1cX8Ro
繼續(xù)學(xué)習(xí) wxWidgets。
還有靜態(tài)編譯的辦法,需要重新編譯wxwidgets,否則沒(méi)有庫(kù)文件:
https://blog.csdn.net/CharmingSun/article/details/51765180