Hello World Under Ubuntu

       为了学习android,我买了本LDD,准备好好学习,天天向上,结果书一打开,看了第一章就觉得有点晕了...

       想把传说中最基本的hello world给实验一下...

 

       结果书中对于如何建立测试环境啥都没说,这对于向我这种linux小白来说真是痛苦阿...

 

       上网乱搜一通,找到一篇Ubuntu的官方说明:https://wiki.ubuntu.com/KernelTeam/GitKernelBuild

       还是说的比较清楚的,那就一步一步的做吧...(PS。文档上说如果要编译一个标准的Ubuntu比较相似的版本的话,需要到Ubuntu的官方Kernel网站上下载一份10.04的内核代码,结果那个source慢的跟蜗牛一样,3k,天阿...

 

        我一看火了,别的source deb也找不到,干脆就不管这个了,直接make了,呵呵,到也成功了...装上新的内核,重启,结果看到除了我新装的那个,还有原来标准的Ubuntu的版本,恩,不错,不错....

 

        好把,现在可以编译hello world的把,结果书上也没写hello.c应该放在那里..唉,估计是作者觉得过于简单了,不写了...看来我是过于小白了

 

        继续google,然后根据网上大虾的意见,放在/linux-2.6/drivers/char目录下面,然后修改Makefile文件,加入obj-m := hello.o,回到/linux-2.6根目录,打make modules,等了一会之后,终于看见了传说中的hello.o和hello.ko,还有两个二进制文件,一开始我用insmod hello.o结果怎么都失败,搞崩溃了....后来才发现,原来是insmod hello.ko,汗阿....

 

        然后使用dmesg命令就可以看到hello world的在内核中打印的字符串了....高级阿~~~~

 

 

        不过只是为了编译一个hello.c,就需要到根目录下去make modules有点小题大作了...应该还有更加好的办法的...再找找

 

 

 

### 编写和运行 Hello World 程序 #### 准备工作环境 为了能够在Ubuntu上顺利编写和运行C语言的Hello World程序,需要先安装GCC编译器。通过终端执行如下命令完成安装: ```bash sudo apt-get install gcc ``` 注意,在输入上述命令后会提示操作权限并要求输入密码;尽管在命令行中键入密码时不会有任何字符显示,但仍可正常输入,完成后按下Enter确认[^5]。 #### 创建源文件 接下来创建一个名为`hello.c`的源代码文件,该文件包含了用于打印“hello world”的基本C语言程序结构。以下是具体的实现方法之一: ```c #include <stdio.h> int main() { printf("hello, world!\n"); return 0; } ``` 这段代码定义了一个简单的主函数`main()`,它调用了标准库中的`printf()`函数来向控制台输出字符串"hello, world!"[^2]。 #### 编译与链接 保存好上面提到的`.c`文件之后,就可以利用之前已经安装好的GCC来进行编译了。打开终端窗口进入包含刚才创建的那个`.c`文件所在的目录,并执行下面这条指令: ```bash gcc -o hello hello.c ``` 这里使用的选项`-o`指定了最终生成的目标文件名——即这里的`hello`,而紧跟其后的参数则是待编译的源码路径[^3]。 #### 执行程序 一旦成功完成了编译过程,则可以在同一目录下调用新产生的可执行文件。只需再次回到命令行界面,键入以下内容并回车即可看到预期的结果: ```bash ./hello ``` 这将会触发刚刚构建出来的应用程序开始执行,并且应该会在屏幕上显示出我们熟悉的问候语句:"hello, world!"。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值