南邮操作系统第一次试验

实验目的:

能够安装某Linux发行版本(例如Red Hat)

了解Linux的启动过程

了解Linux文件的组织结构

熟悉X Window 环境

练习使用Linux 常用命令

熟练使用Linux的C语言开发环境

学习并掌握Linux 编译工具 gcc 的使用方法

(1)适应vi生成myfile.c文件(.c是c语言文件的后缀)

      vi myfile.c

    vi编译器的使用方法可以参考http://www.hdpfans.com/home.php?do=blog&id=68&mod=space&uid=32961

即1.系统自动进入文件后,按i进入插入模式

2.输入代码

3.按esc键进入命令模式

4.输入:wq退出并保存

(2)编译

老师给的代码有一定错误,老师故意的。。。

老师给的代码:

#include <linux/unistd.h> 
int main( ) 
{ 
  int  i=getuid( ) ; 
  printf(“Hello world! This is my uid: %d\\n”, i ) ; 
} 

编译报错:

简单的错误还是可以改的,比如缺少return 0;include<stdio.h>但改后还是报错

warning: implicit declaration of function ‘getuid’ [-Wimplicit-function-declaration]
   int  i=getuid( ) ; 

这是因为函数没有在头文件(.h)定义,这就导致编译的时候没法正确生成.o文件,因此填上头文件#include <unistd.h>

最后正确的代码应该是 

#include <unistd.h>
#include <linux/unistd.h> 
#include <stdio.h>
int main( ) 
{ 
  int  i=getuid( ) ; 
  printf("Hello world! This is my uid: %d\\n", i ) ; 
  return 0;
}

 编译工具gcc

Red Hat Linux的编译器是gcc。gcc软件包支持C、C++。gcc的可执行文件在/usr/bin/gcc下,/lib和/usr/lib目录下是库文件。/usr/include目录下是头文件。  

gcc编译常用格式为:

$gcc  源文件名↙  

(例如:$gcc aaa.c↙,将生成默认可执行文件a.out)

或者  $gcc  -o 目标文件名 源文件名↙  

(例如:$gcc –o aaa  aaa.c) 

如果有些同学第(1)步保存文件出现报错

myfile.c: In function ‘main’:
myfile.c:8:3: error: stray ‘\342’ in program
   printf(“Hello world! This is my uid: %d\\n”, i ) ; 
   ^

那是因为直接复制,系统吧英文的"翻译成中文的“,改正即可

(3)运行

root@benben-virtual-machine:~# gcc -o test myfile.c
root@benben-virtual-machine:~# ./test

如果你上一步是运用的  $gcc  -o 目标文件名 源文件名↙  则运行用./目标文件名

(例如:$gcc –o aaa  aaa.c) 

如果是$gcc 源文件名,则运行为./a.out,a.out是运行自动产生的默认文件名。

如果运行报错,权限不够,请在运行前,改变一下.c文件的权限即可,如chmod  755  xx.c

权限具体可看https://www.cnblogs.com/sxdcgaq8080/p/7498906.html

编译链接可看https://www.cnblogs.com/smlile-you-me/p/7123595.html

整个过程:

root@benben-virtual-machine:~# vi myfile.c
root@benben-virtual-machine:~# gcc myfile.c
root@benben-virtual-machine:~# chmod 775 myfile.c
root@benben-virtual-machine:~# ./a.out

或者

root@benben-virtual-machine:~# gcc -o test myfile.c
root@benben-virtual-machine:~# ./test

此处因为我之前修改了myfile.c 的权限,所以第二个代码没有chmod命令,如果你的报错,记得填上哟

OK,完成啦,结果应该是Hello world! This is my uid: 0\nroot@benben-virtual-machine:~# 

 

参考链接:

https://www.cnblogs.com/sxdcgaq8080/p/7498906.html

https://www.cnblogs.com/smlile-you-me/p/7123595.html

http://www.hdpfans.com/home.php?do=blog&id=68&mod=space&uid=32961

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值