秋忆博客
若是有缘,时间空间都不是距离,若是无缘,终日相聚也无法会意,凡事不必太在意,更不需去强求。

    今天,看了一下《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)

posted on 2008-03-04 01:04  秋忆  阅读(822)  评论(0编辑  收藏  举报