之前一直在Windows系统下进行程序的设计,近期开始学习使用Linux系统,因而打算将程序开发也转移到Linux系统下。今天先简单介绍一下该系统下的C程序开发步骤。

首先要预先安装vim和gcc工具,然后我们先编写一个“Hello World”程序:

1.在目录下打开命令窗口,输入  vim hello.c  创建并打开 hello.c 文件,按键<I>进入编辑模式,输入如下代码:

 #include<stdio.h>

 int main()
{
printf("Hello World!\n");
return ;
}

按<Esc>退出编辑,<:>wq保存并退出编辑界面。

2.输入 gcc hello.c -o hello 编译 hello.c 文件并输出 hello 可执行文件。其含义为:gcc[源文件名]输出[输出文件名]。当然,用户也可以分步编译

gcc -E hello.c -o hello.i    预编译

gcc -S hello.i -o hello.s    对生成的 hello.i 文件编译,生成汇编代码

gcc -c hello.s -o hello.o    将汇编代码文件 hello.s 编译为目标文件

gcc hello.o -o hello         将 hello.o 与 C 标准输入输出库进行连接,最终生成程序 hello

3.输入 ./hello 运行当前目录下的 hello 程序,会看到屏幕上打印的“Hello World!”字样。

至此 Hello World 程序编译完毕,接下来我介绍一下多文件的编译。创建文件 Main.c 和 Add.c

 /*
Add.c
*/
#include<stdio.h> int add(int num0,int num1)
{
return num0+num1;
}
 /*
Main.c
*/
#include<stdio.h> int add(int num0,int num1); int main()
{
printf("%d",add(,));
return ;
}

编写完两个文件后,在命令行输入 gcc Main.c Add.c -o ADD 。输入 ./ADD 运行程序。

Linux系统中C&Cpp程序开发(一)的更多相关文章

  1. Linux 系统中的MySQL数据库默认区分大小写

    今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...

  2. Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

    Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://b ...

  3. Linux系统中“动态库”和“静态库”那点事儿【转】

    转自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻. ...

  4. Linux系统中“动态库”和“静态库”那点事儿

    摘自http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在 ...

  5. (转)浅谈 Linux 系统中的 SNMP Trap

    原文:https://www.ibm.com/developerworks/cn/linux/l-cn-snmp/index.html 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前, ...

  6. 使用VS2017 编写Linux系统上的Opencv程序

    背景 之前写图像算法的程序都是在window10下使用VS编写,VS这个IDE结合“ImageWatch.vsix“插件,用于调试opencv相关的图像算法程序十分方便.后因项目需要,需将相关程序移植 ...

  7. 2017-03-04 dotnet core网站发布到Linux系统中

    今天开始学习dotnet core的开发,距离Visual Stuio 2017正式版的发布,也就是VS20周岁的生日还有三天,在我的电脑上安装的是VS2017 Enterprise RC版, 在VS ...

  8. 【OS_Linux】Linux系统中目录及文件管理

    1.Linux系统中目录的树状结构 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录, ...

  9. Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)

    1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...

随机推荐

  1. MySQL命令mysqldump参数大全

    参数参数说明--all-databases  , -A导出全部数据库.mysqldump  -uroot -p --all-databases--all-tablespaces  , -Y导出全部表空 ...

  2. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  3. mysql学习(用户权限管理)

    1. 添加数据库用户 create user 'username'@'host' identified by 'password'; 提示: 如果想让该用户可以从其他主机登陆,host可以设置为'%' ...

  4. 快速幂:quickpow

    众所周知,快速幂是优化对数的次方运算的最普遍手段.在学习快速幂的思想时,其分治思想容易让大家用简单的递归实现. 但其实,除了递归之外,更好的方法会是简单的 WHILE循环.下面贴代码: #includ ...

  5. MySQL是否在扫描额外的记录

    在确定查询只是返回需要的数据之后,接下来应该看看查询为了返回结果是否扫描了过多的数据.对于MySQL,最简单的衡量查询开销的三个指标如下: 1响应时间,2扫描行数,3返回行数 没有那个指明能够完美的衡 ...

  6. Android环境搭建-Eclipse-Luna

    所需软件:eclipse-jee-luna-R-win32-x86_64 所需插件:Adt 23.02 其他:Android SDK 环境搭建-JDK安装.Eclipse安装 配置安卓环境变量: cm ...

  7. Domj4读取xml文件

    节点: Iterator Element.nodeIterator(); //获取当前标签节点下的所有子节点 标签: Element Document.getRootElement(); //获取xm ...

  8. C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 虚继承的构造函数

    构造函数 ,是一种特殊的方法 .主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 .特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数 ...

  9. rsyslog imfile 模块说明

    stop() { echo -n $"Shutting down system logger: " killproc -p "${PIDFILE}" -d 30 ...

  10. POJ 2923 Relocation

    题目大意:有n个物品,有两辆车载重分别是c1,c2.问需要多少趟能把物品运完. (1 ≤ Ci ≤ 100,1 ≤ n ≤ 10,1 ≤ wi ≤ 100). 题解:n小思状压.我们先把所有一次可以拉 ...