今天,看了一下《Linux系统应用与开发教程》的“GCC的使用与开发”部分,自己接触Linux也不短时间了,只不过真正弄懂Linux的东西还少,现在就来玩玩Linux编程。
前两天才安装的Fedora
7.0正式版,启动系统后,新建一个空文件helloworld.c,敲入程序初学者使用的最简单程序代码(虽然我学C已经有两年多了^_^)
#include<stdio.h>
void main()
{
printf("Hello
World!"n");
}
保存后在终端里输入命令“gcc helloworld.c -o helloworld”,马上回车,心想自己的第一个Linux程序就要诞生了,噢,My god,谁知出来的是错误提示,说main函数没有返回int型,但上面的代码在VC里是可行的。无办法,改为
#include<stdio.h>
int main()
{
printf("Hello
World!"n");
return 0;
}
再执行生成命令,这次什么也没提示,成功了,哈哈~~~接着当然是运行自己的第一个Linux程序看看结果啦,在终端里输入“helloworld”,噢,My god,提示没有此命令,明明程序就在当前目录啊,看看书上怎么写的,终于发现需要这样写命令“./helloworld”,回车,终于打印出 “Hello World!”了。虽然自己写程序将近三年,但在Linux上连打印“Hello World!”还是遇到麻烦,这就是没有动手的原因。
接着写个有意思点的——窗体程序,按照书上使用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;
}
全是那么长的函数名,还有那么多的下划线,看了有点眼花,终于自己打错了两个单词,经编译时才提示的。当我打好代码后,按照书上所说的命令“gcc helloworld.c -o helloworld 'pkg-config gtk+-2.0 --cflags --libs'”,回车后却提示什么无“pkg-config gtk+-2.0 --cflags --libs”,摸不着头脑,书上说输入“pkg-config gtk+-2.0 --cflags --libs”可以检查它的输出结果,输入回车确实出来一堆字符,有什么用不知道。再试上面的编译命令,还是同样的错误,怎么回事?是不是书上排版写错命令了?马上打开Firefox,百度了一下,看到别人使用的命令和我打的有点小小的不同,就是那个单引号,我打的是正规的英文单引号,而别人用的却是向右斜的“单引号”,怎么那么奇怪?书上也是说使用一对反向单引号,我找不着什么反向单引号在哪输入,就把别人的Copy过来,变成“gcc helloworld.c -o helloworld `pkg-config gtk+-2.0 --cflags --libs`”,复制命令到终端,回车,等了一会,最后什么结果都没有,呵呵,成功啦!~~~原来真的是那个什么反向单引号的问题,我再试了一下键盘,还是找不着什么反向单引号。算了,不理,执行第一个Linux窗体程序看看,输入“./helloworld”,回车,哈哈,窗体出来啦,只有一个很丑的按钮,很小的窗体,差点找不着它出现在哪里,按最大化更怪,因为那个按钮也跟着变大了,哈哈~~~
第一次Linux编程是这样的失败,呼!重启回到Windows 2003,写下这篇文章……(哦,对了,那个反向单引号在这个时候给我看到了,是一个非常少用的符号,也在一个非常少用的按键上面,就是键盘左上角Esc 键下面那个,这个叫反向单引号,哈哈~~~~)
(2007-6-10)