如何在 Ubuntu/Debian/Linux Mint 中編譯和安裝 wxWidgets

pw8c 9年前發布 | 59K 次閱讀 wxWidgets GUI開發框架

wxWidgets

wxWidgets是一個程序開發框架/庫, 允許你在Windows、Mac、Linux中使用相同的代碼跨平臺開發。它主要用C++寫成,但也可以與其他語言綁定比如Python、Perl、Ruby。

如何在 Ubuntu/Debian/Linux Mint 中編譯和安裝 wxWidgets

本教程中我將向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中編譯wxwidgets 3.0+。

從源碼編譯wxWidgets并不困難,僅僅需要幾分鐘。庫可以按不同的方式來編譯,比如靜態或者動態庫。

1. 下載 wxWidgets

第一步你需要從wxwidgets.org下載wxWidgets源碼文件。

做完后,解壓到目錄。

2. 設置編譯環境

要編譯wxwidgets,我們需要一些工具包括C++編譯器,在Linux上是g++。所有這些可以通過apt-get工具從倉庫中安裝。

我們還需要wxWidgets依賴的GTK開發庫。

$ sudo apt-get install libgtk-3-dev build-essential checkinstall

這個叫做checkinstall的工具允許我們為wxwidgets創建一個安裝包,這樣之后就可以輕松的使用包管理器來卸載。

</blockquote>

3. 編譯 wxWidgets

進入到wxWidgets解壓后的目錄。為了保持清潔,創建一個編譯用的目錄。

$ mkdir gtk-build
$ cd gtk-build/

現在運行configure和make命令。每個將花費一些時間來完成。

$ ../configure --disable-shared --enable-unicode
$ make

"--disable-shared"選項將會編譯靜態庫而不是動態庫。

make命令完成后,編譯就成功了。是時候安裝wxWidgets到正確的目錄。

更多信息請參考install.txt和readme.txt,這可在wxwidgets中的/docs/gtk/目錄下找到。

4. 安裝 checkinstall

現在我們不使用"make install"命令,我們使用checkinstall命令來創建一個wxwidgets的deb安裝包。運行命令:

$ sudo checkinstall

checkinstall會詢問幾個問題,請保證在提問后提供一個版本號,否則將會失敗。

完成這一切后,wxWidgets就安裝好了,deb文件也會創建在相同的目錄下。

5. 追蹤安裝的文件

如果你想要檢查文件安裝的位置,使用dpkg命令后面跟上checkinstall提供的包名。

$ dpkg -L package_name
/.
/usr
/usr/local
/usr/local/lib
/usr/local/lib/libwx_baseu-3.0.a
/usr/local/lib/libwx_gtk3u_propgrid-3.0.a
/usr/local/lib/libwx_gtk3u_html-3.0.a
/usr/local/lib/libwxscintilla-3.0.a
/usr/local/lib/libwx_gtk3u_ribbon-3.0.a
/usr/local/lib/libwx_gtk3u_stc-3.0.a
/usr/local/lib/libwx_gtk3u_qa-3.0.a
/usr/local/lib/libwx_baseu_net-3.0.a
/usr/local/lib/libwxtiff-3.0.a

6. 編譯示例

編譯wxWidgets完成后就可以馬上編譯示例程序了。在相同的目錄下,一個新的sample目錄已經創建了。

進入它并運行下面的命令

$ compile samples
$ cd samples/
$ make

make命令完成后,進入sample 子目錄,這里就有一個可以馬上運行的Demo程序了。

7. 編譯你的第一個程序

你完成編譯demo程序后,可以寫你自己的程序來編譯了。這個也很簡單。

假設你用的是C++,這樣的話你還可以使用編輯器的高亮特性。比如gedit、kate、kwrite等等。或者用全功能的IDE像Geany、Codelite、Codeblocks等等。

然而你的第一個程序只需要用一個文本編輯器來快速完成。

如下:

#include <wx/wx.h>

class Simple : public wxFrame { public: Simple(const wxString& title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150)) { Centre(); } };

class MyApp : public wxApp { public: bool OnInit() { Simple *simple = new Simple(wxT("Simple")); simple->Show(true); return true; } };

wxIMPLEMENT_APP(MyApp);</pre>

現在保存并用下面的命令編譯。

# compile
$ g++ basic.cpp wx-config --cxxflags --libs std -o program

run

$ ./program</pre>

和非標準的庫一起編譯

面展示的wx-config命令默認只支持標準的庫。如果你使用的是Aui庫,那么你需要指定額外用到的庫。

$ g++ code.cpp `wx-config --cxxflags --libs std,aui` -o program

更多的信息參考這里這里

資源

下載wxWidgets的源碼和幫助 https://www.wxwidgets.org/downloads/

wxWidgets編譯的wiki頁面 https://wiki.wxwidgets.org/Compilingandgetting_started

使用wxWidgets最新版本(3.0+)的事項 https://wiki.wxwidgets.org/UpdatingtotheLatestVersionofwxWidgets


via: http://www.binarytides.com/install-wxwidgets-ubuntu/

作者:Silver Moon 譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

來源: https://linux.cn/article-5663-1.html

 本文由用戶 pw8c 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!