怎样在linux下编写C程序并编译执行

一、Hello, world!

在linux下输入:(以hello.c为例)
首先选中文件要保存的路径(如:cd work)
vi hello.c(要编辑的文件名)

输入程序:
# include<stdio.h>
int main(void)

{

printf("hello,world!\n");

  return 0;   注:return和0之间要有空格
}

退出并保存程序:
在vi模式下,按ESC后,按 :wq加enter键

利用gcc编译程序:
(先要找到程序存在哪个文件夹中)
ls
cd work
gcc -Wall hello.c (或者是gcc hello.c -o hello)  注:在编译时最好加上-Wall选项,这样的话可以把隐藏的warning也显示出来,Wall首字母要大写。

输出程序结果:
./hello  (或者是 ./a.out)

执行完后可以得到:
hello, world!

二、引用数学函数时的编译指令

当程序中用到了数学函数时,在vi中编译时应该在gcc后面加上-lm选项,这是因为数学函数都是保存与libm.so库文件中(通常在/lib目录下),选项-lm就是告诉程序该数学函数要到这个库中去找。如程序:
#include<stdio.h>
#include<math.h>
{
int a=0;
int b;
b= cos(a);
printf("the value is %d",b)
return 0;
}

在编译时应该输入 gcc -lm -Wall math.c

时间: 2024-10-10 14:34:58

怎样在linux下编写C程序并编译执行的相关文章

Windows下与Linux下编写socket程序的区别 《转载》

原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include<winsock.h>#include<winsock2.h> [Windows: 初始化的区别] WSADATA wsaData;WSAStartup(0x202,&wsaData); [Windows: 声明Socket] SOCKET类型 [Windows: Socket关闭]c

Linux 下编写服务器程序时关于Address already in use 的小错误

新手,,学习linux服务器编程的时候,bind()函数出现了Address already in use 的错误,这是因为上一次bind过后,还未释放,,只要在socket和bind之间加一个函数就可以 1 int opt: 2 setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)); 这个函数的作用是实现地址复用,,

Linux下C语言程序的编译过程与ssc平台出租

使用gcc编译程序时,编译工程分为4个阶段:ssc平台出租(企 娥:217 1793 408) (1)预处理:(Pre-Processing) (2)编译:(Compiling) (3)汇编:(Assembling) (4)链接:(linking) 预处理.编译.汇编是3个不同的阶段,但gcc在实际操作时可以把3个步骤合并为一个步骤来执行.下面以一个实例介绍如何生成各个阶段的代码.下面演示都针对文件 hello.c 进行. 1.编译单个文件 首先 vim hello.c 在hello.c中 按下

在Linux下编写Daemon

在Linux(以Redhat Linux Enterprise Edition 5.3为例)下,有时需要编写Service.Service也是程序,一般随系统启动用户不干预就不退出的程序,可以称为Service.Linux下的Service一般称为Daemon. 以上是广义的Service的定义.Linux下的Service一般放在/etc/init.d文件夹下.浏览一下这个文件夹下的文件,可以发现在Linux下编写Service一般遵循的原则. 一 Linux下编写Service一般遵循的原则

Linux下编写驱动程序(VFS)

转:http://hi.baidu.com/firstm25/item/8fe022155e1fa78988a9568f 摘要:设备驱动程序是操作系统内核与机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节.那么驱动程序如何书写实现这一接口功能是本文讨论的重点,并以一简单的驱动程序介绍书写细节. 在用户进程调用驱动程序时,系统进入核心态,这时不再是抢先式调度.(应用程序一般是在用户态下进行)也就是说系统必须在驱动程序的子函数返回后才能进行其它的工作,即驱动程序不能进入死循环. 字符型设备

两种在linux下创建应用程序快捷方式的方法

两种在linux下创建应用程序快捷方式的方法: A. 在桌面上创建快捷方式 B. 在应用程序菜单中添加快捷方式 在桌面上创建快捷方式 这是最简单的一种方法,在桌面上单击鼠标右键,会有一个“创建启动器”栏.这里我以为mplayer创建快捷方式为例说明: 名称-mplayer(或者你喜欢的任何名称,这个名称会出现在快捷图标的 下方) 命令-/usr/bin/gmplayer(这个是mplayer的gui应用程序的执行文件,跟 安装路径相关,可以通过which gmplayer找到) 图标-一般应用程

Linux下C/C++程序调试基础(GCC,G++,GDB,CGDB,DDD)

在写程序的时候,经常会遇到一些问题,比如某些变量计算结果不是我们预期的那样,这时我们需要对程序进行调试.本文主要介绍调试C/C++在Linux操作系统下主要的调试工具. 在Linux下写程序,C/C++主要的编译器有GCC/G++,ICC等,像我等穷码农,最喜欢GCC了,很大原因是他免费!所以,我们以GCC/G++为例介绍主要的调试工具. 分以下几个内容介绍: 1.调试之前的工作 2.选择调试工具 3.调试步骤 点我,请帮我投一票! 调试之前的工作 编译器在编译阶段需要产生可供调试的代码,才能被

在windows下编写R程序包

每个R的使用者总会遇到这样的问题,用R时间长了攒了几个自己写的函数需要经常调用,用source命令调用感觉不够方便,最好怎么办呢?编一个自己的包,只需安装一次就可多次调用,方便自己和他人使用.我把自己制作R包的步骤记了下来,主要参考了统计之都的一篇帖子(http://cos.name/cn/topic/15991)和<Creating R Packages: A Tutorial>中的部分内容,对一些过时的东西做了更正,以供大家参考吧. 在windows下编写R程序包

使用VI编辑器在Linux下编写Java文件

1.cd 文件名,进入一个目录下 2.vi 文件名,新建一个文件(如此文件已存在则打开) 进入编辑器 3.按i(光标所在输入)/按a(光标后输入)进入编辑模式,写入JAVA代码 P.S.  Esc退出编辑状态,非编辑状态下X为删除,HJKL分别为左上下右 4.按Esc退出编辑模式 5.按:wq,回车 6.ls查看文件,已存在 7.javac编译(文件名需加后缀) 8.java运行(文件名不加后缀) 使用VI编辑器在Linux下编写Java文件