gtk編譯程序命令
Ⅰ 在頭文件中含有#include <gtk/gtk.h>,但在通過gcc編譯時會有」gtk/gtk.h,沒有那個文件或目錄」的提示,原
你試試在終端用pkg-config命令查查看需要用-I參數指定哪些目錄才能用gtk。
pkg-config --cflags gtk+-2.0
我執行這個命令後輸出的是
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
把你執行這個命令後輸出的那一段復制後添加在你gcc的命令行再編譯試試看。
Ⅱ ubuntu中用gcc編譯gtk+時出錯:undefined reference to `main'
為什麼你要加「螞大-x"呢?去掉試一試,或許就是"滑虧main"錯寫信物神了「mian"之類的……
Ⅲ linux下怎麼安裝gtk啊
apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具
apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件
apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置
apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #這仔備中將安裝 gtk/glib 的API參考手冊滾帆及其它幫助文檔
apt-get install glade libglade2-dev #這將安裝基於GTK的界面GTK是開發Gnome窗口的念山c/c++語言圖形庫。apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。
應用程序編譯命令:gcc test.c `pkg-config --cflags --libs gtk+-2.0`,編譯通過,運行正常。
Ⅳ ubuntu系統怎麼安裝GTK
GTK的安裝
sudo apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器
sudo apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具
sudo apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件
sudo apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置
sudo apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
sudo apt-get instal glade libglade2-dev #這將安裝基於GTK的界面判悄沖GTK是開發Gnome窗口的c/c++語言圖形庫。在Ubuntu的機器上折騰了一下,復制了網上教程的代碼在本機上編譯。代碼的文件名:t1.c。按照教程,用以下命令編譯:
gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`
編譯結果:找不到gtk/gtk.h。
因為我的Ubuntu是Gnome系統,所以我以為gtk+2.0的開發程序(頭文件和庫文件)應該已經安裝在計算機上了。其實不然,如果在Ubuntu 上開發gtk+2.0的程序,需要安裝相應的頭文件和庫。在控制台窗掘殲口輸入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。再次應用編譯命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,編譯通過,運行。
pkg-config是一個用來管理包的程序,在控制台輸入 pkg-config --cflags --libs gtk+-2.0 的運行結果:
-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmole-2.0 -ldl -lglib-2.0
可以看出,輸出的文本包括了gcc編譯gtk+2.0所需要的所有選項(頭文件目錄和庫文件)。
這里有一點需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0兩側的引號並不是真正的引號,而是鍵盤數字件那一行,最左邊的那個字元。如果錯用了單引運睜號,gcc無法使用 pkg-config --cflags --libs gtk+-2.0產生的文本作為編譯選項。構造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`
//////////////////////////////////////////////////////////////////////////////////////////////////////
首先獲得超級用戶許可權
apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器
apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具
apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件
apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置
apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
apt-get instal glade libglade2-dev #這將安裝基於GTK的界面構造程序
都是安裝好後測試一下程序hello.c
#include <gtk/gtk.h> ----------我編譯時老是說找不到頭文件,後來在/usr/include里找到gtk-2.0/gtk/gtk.h,原來是路徑錯誤,最後將頭文件路徑修改為<gtk-2.0/gtk/gtk.h>,終於好了!
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello 大家好\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred\n");
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello 大家好");
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC(gtk_widget_destroy),GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window); /*顯示一個窗口*/
gtk_main(); /*進入主循環*/
return(0);
}
最後編譯運行:
$ gcc hello.c -o hello `pkg-config --cflags --libs gtk+-2.0`
$ . /hello
////////////////////////////////////////////////////////////////////
GTK的安裝
sudo apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器
sudo apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具
sudo apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件
sudo apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置
sudo apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
sudo apt-get instal glade libglade2-dev #這將安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫。在Ubuntu的機器上折騰了一下,復制了網上教程的代碼在本機上編譯。代碼的文件名:t1.c。按照教程,用以下命令編譯:
gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`
編譯結果:找不到gtk/gtk.h。
因為我的Ubuntu是Gnome系統,所以我以為gtk+2.0的開發程序(頭文件和庫文件)應該已經安裝在計算機上了。其實不然,如果在Ubuntu 上開發gtk+2.0的程序,需要安裝相應的頭文件和庫。在控制台窗口輸入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。再次應用編譯命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,編譯通過,運行。
pkg-config是一個用來管理包的程序,在控制台輸入 pkg-config --cflags --libs gtk+-2.0 的運行結果:
-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmole-2.0 -ldl -lglib-2.0
可以看出,輸出的文本包括了gcc編譯gtk+2.0所需要的所有選項(頭文件目錄和庫文件)。
這里有一點需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0兩側的引號並不是真正的引號,而是鍵盤數字件那一行,最左邊的那個字元。如果錯用了單引號,gcc無法使用 pkg-config --cflags --libs gtk+-2.0產生的文本作為編譯選項。構造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`
Ⅳ 如何在配置Windows下的GTK+開發環境 00 半瓶墨水
Windows下也可以使用gtk+編程,就像widows下也可以使用qt編程一樣,不同的是,qt是基於c++的類,和在windows下配置qt開發環境相比,配置gtk要簡單的多,當然,其實兩樣都一樣的簡單,只不過在安裝qt時我遇到了版本號的問題,不過從時間上來說gtk的安裝也更省時間點,包括從下載的庫來看gtk都比qt小得多,好吧,說了一些亂七八糟的東西,現帆凱在開始
首先得先下載gtk庫,這個可以到谷歌去搜索gtk for windows好吧,還是我直接給鏈接吧,我不確定這個會一直有效
http://www.gtk.org/download/win32.php
全都是英語,不過沒關系,我們只需要下載all-in-one bundle
http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
當然如果你想要按著自己的方式下載我也沒意見
好了,下載完後將zip文件解壓到指定目錄(這里說明一下,你最好安裝一個mingw)
然後我們設置一下環境路徑
我的電腦---屬性---高級---環境變數
在用戶變數或者是系統變數那裡找到PATH,沒有也可以自己創建,我一般喜歡使用用戶環境變數,然後加上我們gtk安裝的路徑下的bin目錄,比如我的安裝在C;\mingw\gtk+\bin,多個環境路徑之間用分號分開,這個不用我說了吧
好了,如果你是用的用戶環境變數,那麼保存後不需要重啟就會生效,如果是系統環境變數的話可能你需要重啟後才能生效
現在我們寫一個簡單的gtk程序
#include <gtk/gtk.h>
int main(int argc,char **argv)
{
GtkWidget *win;
gtk_init(&argc,&argv);
win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(win);
g_signal_connect(G_OBJECT(win),"destroy",GTK_SIGNAL_FUN(gtk_main_quit),NULL);
gtk_main();
return 0;
}
現在我們使用gcc在msys下進行編譯
gcc -o gtk gtk.c `pkg-config --cflags --libs gtk+-2.0` -mwindows
不出意外你就可以執行gtk.exe並打開一個窗口了
-mwindows選項主要是為了程序運行時沒有dos窗口,不加的話執行時會有一個dos窗口,如果你沒有安裝msys的話,比如你裝的是dev-cpp的話那麼你可能要在命令提示行下這樣做才能編譯
pkg-config --cflags --libs gtk+-2.0>arg.bat
然後打開arg.bat在那一大堆字元串前加上gcc -o gtk gtk.c 然後在最後面加上 -mwindows,保存退出後再arg就可以正確編譯了
這主要是因為我們在編譯gtk程序的時候要指定包含文件路徑,鏈接庫的路徑等等,而這些使用pkg-config加上上面的參數可以得到,而在linux下使用``在反引號之間的內容作為單獨的命令並進行運行,然後用結果替換掉當前反引號之態源喚間的內容,這就是為什麼用bat文件要這樣做的原因,如果cmd下也有這樣的操作的話那麼可以像在linux下那樣去做,所以如果你安裝了msys+mingw開發環境的話,會比較簡單,而如果是dev-cpp的話裂悔要費點力氣,而如果是vs的話,好吧,我還沒試過
Ⅵ gcc編譯器究竟怎麼打開我竟然在gcc的安裝文件夾中找不到gcc的打開文件
你先用vim 或者直接用gedit編寫好程序,然後直接輸入命令就可以了,比如你的程序是helloworld.c,那麼你可以輸入命令:
編譯命令:gcc -o helloworld helloworld.c
運行命令./helloworld
希望這樣的回答對你有幫助!
gcc的使用方法
1。gcc包含的c/c++編譯器
gcc,cc,c++,g++,gcc和cc是一樣的,c++和g++是一樣的,一般c程序就用gcc編譯,c++程序就用g++編譯
2。gcc的基本用法
gcc test.c這樣將編譯出一個名為a.out的程序
gcc test.c -o test這樣將編譯出一個名為test的程序,-o參數用來指定生成程序的名字
3。為什麼會出現undefined reference to 'xxxxx'錯誤?
首先這是鏈接錯誤,不是編譯錯誤,也就是說如果只有這個錯誤,說明你的程序源碼本身沒有問題,是你用編譯器編譯時參數用得不對,你沒有指定鏈接程序要用到得庫,比如你的程序里用到了一些數學函數,那麼你就要在編譯參數里指定程序要鏈接數學庫,方法是在編譯命令行里加入-lm。
4。-l參數和-L參數
-l參數就是用來指定程序要鏈接的庫,-l參數緊接著就是庫名,那麼庫名跟真正的庫文件名有什麼關系呢?
就拿數學庫來說,他的庫名是m,他的庫文件名是libm.so,很容易看出,把庫文件名的頭lib和尾.so去掉就是庫名了。
好了現在我們知道怎麼得到庫名了,比如我們自已要用到一個第三方提供的庫名字叫libtest.so,那麼我們只要把libtest.so拷貝到/usr/lib里,編譯時加上-ltest參數,我們就能用上libtest.so庫了(當然要用libtest.so庫里的函數,我們還需要與libtest.so配套的頭文件)。
放在/lib和/usr/lib和/usr/local/lib里的庫直接用-l參數就能鏈接了,但如果庫文件沒放在這三個目錄里,而是放在其他目錄里,這時我們只用-l參數的話,鏈接還是會出錯,出錯信息大概是:"/usr/bin/ld: cannot find -lxxx",也就是鏈接程序ld在那3個目錄里找不到libxxx.so,這時另外一個參數-L就派上用場了,比如常用的X11的庫,它放在/usr/X11R6/lib目錄下,我們編譯時就要用-L/usr/X11R6/lib -lX11參數,-L參數跟著的是庫文件所在的目錄名。再比如我們把libtest.so放在/aaa/bbb/ccc目錄下,那鏈接參數就是-L/aaa/bbb/ccc -ltest
另外,大部分libxxxx.so只是一個鏈接,以RH9為例,比如libm.so它鏈接到/lib/libm.so.x,/lib/libm.so.6又鏈接到/lib/libm-2.3.2.so,如果沒有這樣的鏈接,還是會出錯,因為ld只會找libxxxx.so,所以如果你要用到xxxx庫,而只有libxxxx.so.x或者libxxxx-x.x.x.so,做一個鏈接就可以了ln -s libxxxx-x.x.x.so libxxxx.so
手工來寫鏈接參數總是很麻煩的,還好很多庫開發包提供了生成鏈接參數的程序,名字一般叫xxxx-config,一般放在/usr/bin目錄下,比如gtk1.2的鏈接參數生成程序是gtk-config,執行gtk-config --libs就能得到以下輸出"-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmole -lglib -ldl -lXi -lXext -lX11 -lm",這就是編譯一個gtk1.2程序所需的gtk鏈接參數,xxx-config除了--libs參數外還有一個參數是--cflags用來生成頭文
件包含目錄的,也就是-I參數,在下面我們將會講到。你可以試試執行gtk-config --libs --cflags,看看輸出結果。
現在的問題就是怎樣用這些輸出結果了,最苯的方法就是復制粘貼或者照抄,聰明的辦法是在編譯命令行里加入這個`xxxx-config --libs --cflags`,比如編譯一個gtk程序:gcc gtktest.c `gtk-config --libs --cflags`這樣就差
不多了。注意`不是單引號,而是1鍵左邊那個鍵。
除了xxx-config以外,現在新的開發包一般都用pkg-config來生成鏈接參數,使用方法跟xxx-config類似,但xxx-config是針對特定的開發包,但pkg-config包含很多開發包的鏈接參數的生成,用pkg-config --list-all命令可以列出所支持的所有開發包,pkg-config的用法就是pkg-config pagName --libs --cflags,其中pagName是包名,是pkg-config--list-all里列出名單中的一個,比如gtk1.2的名字就是gtk+,pkg-config gtk+ --libs --cflags的作用跟gtk-config --libs --cflags是一樣的。比如:gcc gtktest.c `pkg-config gtk+ --libs --cflags`。
5。-include和-I參數
-include用來包含頭文件,但一般情況下包含頭文件都在源碼里用#include xxxxxx實現,-include參數很少用。-I參數是用來指定頭文件目錄,/usr/include目錄一般是不用指定的,gcc知道去那裡找,但是如果頭文件不在/usr/include里我們就要用-I參數指定了,比如頭文件放在/myinclude目錄里,那編譯命令行就要加上-I/myinclude參數了,如果不加你會得到一個"xxxx.h: No such file or directory"的錯誤。-I參數可以用相對路徑,比如頭文件在當前目錄,可以用-I.來指定。上面我們提到的--cflags參數就是用來生成-I參數的。
6。-O參數
這是一個程序優化參數,一般用-O2就是,用來優化程序用的,比如gcc test.c -O2,優化得到的程序比沒優化的要小,執行速度可能也有所提高(我沒有測試過)。
7。-shared參數
編譯動態庫時要用到,比如gcc -shared test.c -o libtest.so
8。幾個相關的環境變數
PKG_CONFIG_PATH:用來指定pkg-config用到的pc文件的路徑,默認是/usr/lib/pkgconfig,pc文件是文本文件,擴展名是.pc,裡面定義開發包的安裝路徑,Libs參數和Cflags參數等等。
CC:用來指定c編譯器。
CXX:用來指定cxx編譯器。
LIBS:跟上面的--libs作用差不多。
CFLAGS:跟上面的--cflags作用差不多。
CC,CXX,LIBS,CFLAGS手動編譯時一般用不上,在做configure時有時用到,一般情況下不用管。
環境變數設定方法:export ENV_NAME=xxxxxxxxxxxxxxxxx
9。關於交叉編譯
交叉編譯通俗地講就是在一種平台上編譯出能運行在體系結構不同的另一種平台上,比如在我們地PC平台(X86 CPU)上編譯出能運行在sparc CPU平台上的程序,編譯得到的程序在X86 CPU平台上是不能運行的,必須放到sparc CPU平台上才能運行。
當然兩個平台用的都是linux。
這種方法在異平台移植和嵌入式開發時用得非常普遍。
相對與交叉編譯,我們平常做的編譯就叫本地編譯,也就是在當前平台編譯,編譯得到的程序也是在本地執行。
用來編譯這種程序的編譯器就叫交叉編譯器,相對來說,用來做本地編譯的就叫本地編譯器,一般用的都是gcc,但這種gcc跟本地的gcc編譯器是不一樣的,需要在編譯gcc時用特定的configure參數才能得到支持交叉編譯的gcc。
為了不跟本地編譯器混淆,交叉編譯器的名字一般都有前綴,比如sparc-xxxx-linux-gnu-gcc,sparc-xxxx-linux-gnu-g++ 等等
10。交叉編譯器的使用方法
使用方法跟本地的gcc差不多,但有一點特殊的是:必須用-L和-I參數指定編譯器用sparc系統的庫和頭文件,不能用本地(X86)
的庫(頭文件有時可以用本地的)。
例子:
sparc-xxxx-linux-gnu-gcc test.c -L/path/to/sparcLib -I/path/to/sparcInclude
Ⅶ Deepin安裝GTK無法調用gtk/gtk.h
在命令行單獨執行一下「pkg-config --cflags --libs gtk+-2.0」這個命令,看看結彎差果如何。
其實,要讓gcc搜索相應目錄,只需要加上-I命令,即:gcc main.c -o main -I/usr/include/gtk-2.0
上面這個pkg-config命令就是用來配置-I等參數的。
如果gcc報游悔告找不到gtk/gtk.h,就說明-I參數配置不對或者沒有配置。
PS:除了頭文件,還需要配置庫目錄和引用庫相關信息,所以才會使用pkg-config命令來簡化配置神鬧正操作。
Ⅷ 為什麼老是說找不到 gtk/gtk.h
可能是你GTK版本的問題,你那個版本可能是裝絕好不了.
----------------------------------------
如果還是不行,你就在默認的目並讓鉛錄下面滑帆做一個硬連接.
Ⅸ 如何編譯wxWidgets示常式序
wxWidgets
wxWidgets是一個程序開發框架/庫, 允許你在Windows、Mac、Linux中使用相同的代碼跨平台開發。它主要用C++寫成,但也可以與其他語言綁定比如Python、Perl、旅察Ruby。
本教程中我將向你展示如譽茄何在基於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創建一個安裝包,這樣之後就可以輕松的使用包管理器來卸載。
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等等。
然而你的第一個程序只需要用一個文本編輯器來快速完成。
如下:
#includewx.h>
classSimple:public wxFrame
{
public:
Simple(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250,150))
{
Centre();
}
};
classMyApp:public wxApp
{
public:
boolOnInit()
{
Simple*simple =newSimple(wxT("Simple"));
simple->Show(true);
returntrue;
}
};
wxIMPLEMENT_APP(MyApp);
現在保存並用下面的命令編譯。
# compile
$ g++ basic.cpp `wx-config --cxxflags --libs std`-o program
# run
$ ./program
Ⅹ 包含#include<gtk/gtk.h>,鏈接顯示未定義的引用
我察畢也遇到了這種情況,你看一下你的編譯命令是不是這樣的:
gcc `pkg-config --cflags --libs gtk+-2.0` gtktest.c -o gtktest.out
編譯命令這敗銀芹搏搏樣寫就可以了:
gcc gtktest.c -o gtktest.out `pkg-config --cflags --libs gtk+-2.0`