Linux編程在終端里輸入命令馬上回車程序誕生
想知道到Linux編程系統(tǒng)的真相么,想知道Linux編程系統(tǒng)中藏有的內(nèi)在奧義么,只有我來(lái)給大家全面講解介紹Linux編程系統(tǒng)今天,看了一下《Linux系統(tǒng)應(yīng)用與開發(fā)教程》的“GCC的使用與開發(fā)”部分,自己接觸Linux編程也不短時(shí)間了,只不過(guò)真正弄懂Linux編程的東西還少,現(xiàn)在就來(lái)玩玩Linux編程。
Linux編程前兩天才安裝的Fedora 7.0正式版,啟動(dòng)系統(tǒng)后,新建一個(gè)空文件helloworld.c,敲入程序初學(xué)者使用的最簡(jiǎn)單程序代碼(雖然我學(xué)C已經(jīng)有兩年多了^_^)
- #include<stdio.h>
- void main()
- {printf("Hello World!"n");}
Linux編程保存后在終端里輸入命令“gcc helloworld.c -o helloworld”,馬上回車,心想自己的***個(gè)Linux編程程序就要誕生了,噢,My god,誰(shuí)知出來(lái)的是錯(cuò)誤提示,說(shuō)main函數(shù)沒(méi)有返回int型,但上面的代碼在VC里是可行的。無(wú)辦法,改為
- #include<stdio.h>
- int main()
- {
- printf("Hello World!"n");
- return 0;
- }
再執(zhí)行生成命令,這次什么也沒(méi)提示,成功了,哈哈~~~接著當(dāng)然是運(yùn)行自己的***個(gè)Linux編程程序看看結(jié)果啦,在終端里輸入“helloworld”,噢,My god,提示沒(méi)有此命令。
明明程序就在當(dāng)前目錄啊,看看書上怎么寫的,終于發(fā)現(xiàn)需要這樣寫命令“./helloworld”,回車,終于打印出 “Hello World!”了。雖然自己寫程序?qū)⒔辏贚inux編程上連打印“Hello World!”還是遇到麻煩,這就是沒(méi)有動(dòng)手的原因。
接著寫個(gè)有意思點(diǎn)的——窗體程序,按照書上使用GTK+,把helloworld.c代碼改成
- #include<gtk/gtk.h>
- void on_btn_clicked(GtkWidget *widget, gpointer data)
- {
- g_print("Hello World!"n");
- }
- void on_delete(GtkWidget *widget, GdkEvent *event, gpointer data)
- {
- g_print("Window Closed."n");
- gtk_main_quit();
- }
- int main(int argc, char *argv[])
- {
- GtkWidget *window;
- GtkWidget *button;
- gtk_set_locale();
- gtk_init(&argc, &argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
- g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(on_delete), NULL);
- button = gtk_button_new_with_label("Hello World");
- g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_btn_clicked), NULL);
- gtk_container_add(GTK_CONTAINER(window), button);
- gtk_widget_show_all(window);
- gtk_main();
- return 0;
- }
全是那么長(zhǎng)的函數(shù)名,還有那么多的下劃線,看了有點(diǎn)眼花,終于自己打錯(cuò)了兩個(gè)單詞,經(jīng)編譯時(shí)才提示的。當(dāng)我打好代碼后,按照書上所說(shuō)的命令“gcc helloworld.c -o helloworld 'pkg-config gtk+-2.0 --cflags --libs'”。
回車后卻提示什么無(wú)“pkg-config gtk+-2.0 --cflags --libs”,摸不著頭腦,書上說(shuō)輸入“pkg-config gtk+-2.0 --cflags --libs”可以檢查它的輸出結(jié)果,輸入回車確實(shí)出來(lái)一堆字符,有什么用不知道。再試上面的編譯命令,還是同樣的錯(cuò)誤,怎么回事?
是不是書上排版寫錯(cuò)命令了?馬上打開Firefox,百度了一下,看到別人使用的命令和我打的有點(diǎn)小小的不同,就是那個(gè)單引號(hào),我打的是正規(guī)的英文單引號(hào),而別人用的卻是向右斜的“單引號(hào)”,怎么那么奇怪?書上也是說(shuō)使用一對(duì)反向單引號(hào)。
Linux編程我找不著什么反向單引號(hào)在哪輸入,就把別人的Copy過(guò)來(lái),變成“gcc helloworld.c -o helloworld `pkg-config gtk+-2.0 --cflags --libs`”,復(fù)制命令到終端,回車,等了一會(huì),***什么結(jié)果都沒(méi)有,呵呵,成功啦!
~~~原來(lái)真的是那個(gè)什么反向單引號(hào)的問(wèn)題,我再試了一下鍵盤,還是找不著什么反向單引號(hào)。算了,不理,執(zhí)行***個(gè)Linux編程窗體程序看看,輸入“./helloworld”,回車,哈哈,窗體出來(lái)啦,只有一個(gè)很丑的按鈕,很小的窗體,差點(diǎn)找不著它出現(xiàn)在哪里,按***化更怪,因?yàn)槟莻€(gè)按鈕也跟著變大了,哈哈~~~
***次Linux編程是這樣的失敗,呼!重啟回到Windows 2003,寫下這篇文章……(哦,對(duì)了,那個(gè)反向單引號(hào)在這個(gè)時(shí)候給我看到了,是一個(gè)非常少用的符號(hào),也在一個(gè)非常少用的按鍵上面,就是鍵盤左上角Esc 鍵下面那個(gè),這個(gè)叫反向單引號(hào),哈哈~~~~)
【編輯推薦】