ubuntu 中c 语言编程(学习)
ubuntu下c编程
c编程中相关文件后缀
.a 静态库(archive
.c C源代码(需要编译预处理)
.h C源代码头文件
.i C源代码 (不需要编译预处理)
.o 对象文件
.s 汇编语言代码
.so 动态库
单个源文件生成可执行程序
下面是一个简单的“hello world"程序的源代码:
/* helloworld.c*/
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("hello, world\n");
return 0;
}
最简单的编译该代码为可执行程序的方法是,将该代码保存为文件hello world.c,并执行以下命令:
$ gcc -Wall helloworld.c
编译期通过检查命令行中指定的文件的后缀名可识别其为C源代码文件。GCC默认的动作:编译源代码文件生成对象文件(object file),链接对象文件得到可执行程序,删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的a.out。在命令行中输入程序名可使其执行并显示结果:
$ ./a.out
hello,world
选项-o 用来指定生成的可执行程序的文件名。下面的命令生成名为helloworld的可执行程序:
$ gcc -Wall helloworld.c -o helloworld
在命令行中输入程序名将使其执行,如下:
$./helloworld
hello,world
源文件生成对象文件
选项-c指示GCC编译源代码文件,但将对象文件保留在磁盘中并跳过链接对象文件生成可执行文件这一步。在这种情况下,默认的输出文件的文件名同源代码文件名一致,只不过后缀为.o。例如:
$ gcc -c -Wall helloworld.c
选项-o可用来指定生成的文件的文件名。以下命令将产生名为kubuntu.o的对象文件:
$ gcc -c -Wall helloworld.c -o kubuntu.o
当构建对象库或者生成一系列对象文件以备稍后链接用时,一条命令即可从多个源码文件生成对应的对象文件。下面的命令将生成对象文件ubuntu.o,kubuntu.o和xubuntu.o:
$ gcc -c -Wall ubuntu.c kubuntu.c xubuntu.c
注意:(1)要养成良好的编程习惯,这是一份需要细心的工作
(2)输入源代码要注意全半角,编译的时候容易出现问题
(3)虚心学习
参考 小和尚真情无限的网易博客
ubuntu 中c 语言编程(学习)的更多相关文章
- python中的TCP编程学习
今天看了一下关于python的TCP编程. 发现思路和其他语言(比如java)思路基本上差点儿相同. 先看client.基本过程例如以下: 第一步:创建一个socket 第二步:建立连接 第三步:发送 ...
- Linux C语言编程学习笔记 (1)进程控制入门
想进行Linux系统开发已经很久了,一直没有付诸实践.今日终于开始学习Linux下的C语言编程,研究一天,终于大概弄明白了Linux系统进程管理的一些基本概念和编程方法,总结下来以方便大家学习和自己实 ...
- 适合刚刚学习编程的萌新:C语言编程学习制作超简单又好玩的报数游戏!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- 【C语言编程学习笔记】利用462字节代码实现雅虎logo ACSII 动画!
ACSII 动画演示: 不过本文介绍的是另一个作品:c 代码实现雅虎 logo ACSII 动图. 运行后,你将会看到: 它是一个 20fps.抗锯齿的 Yahoo! logo ASCII 动 ...
- ubuntu 中 搭建 C编程环境
在 ubuntu 中 使用 快捷键 Ctrl + Alt + T 打开 终端 在终端输入 gcc 查看 有没有安装 gcc (c语言的编译器) ( 我这里是 已经 安装 好的 ) 进行 安装 gcc ...
- linux下的c语言编程学习笔记
视频参看csdn学院王阳和下面的linux环境下c语言编程基础相当的经典,其中王阳的视频讲的很好,相当的经典 编译hellogcc.c需要依赖/home目录下的头文件 为了避免同一个文件被includ ...
- C语言编程学习不难学,是你没找对方法!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- C语言编程学习:使用函数必须知道的3点注意事项
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- C语言编程学习开发的俄罗斯方块小游戏
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
随机推荐
- 关于box-sizing
http://www.zhangxinxu.com/css3/css3-box-sizing.php box-sizing:border-box; -o-box-sizing:border-box; ...
- LeetCode_Wildcard Matching
Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...
- 继承Object和ContextBoundObject处理效率上的差距
继承Object和ContextBoundObject处理效率上的差距 ContextBoundObject一个很熟悉的对象,它提供对象有处理上下文的能力:通过它能够方便地实现AOP处理机制.它带来好 ...
- 导入旧数据需要 使用date插件
"@version" => "1", "@timestamp" => "2016-09-12T08:31:06.630 ...
- hdu1561-The more, The Better(树形dp)
Problem Description ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物.但由于地理位置原因,有 ...
- RTP/RTCP/RTSP/RSVP/SDP
RTP Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式.RTP协议常用 ...
- Oracle-nomount/mount/open
通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是一组线程)和一块共享内存区域:Database是指存储 ...
- Asp.net文件缓存依赖
Asp.net文件缓存依赖 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- Byte、KB、MB、GB、TB、PB、EB是啥以及它们之间的进率
它们是存储单位 因为计算机存储单位一般用B,KB.MB.GB.TB.PB.EB.ZB.YB.BB来表示,它们之间的关系是: 位 bit (比特)(Binary Digits):存放一位二进制数,即 0 ...
- 1207.1——C语言 函数
函数可以分为无参函数和有参函数. 无参函数的定义 无参函数定义的一般形式如下:返回值类型 函数名(){ 函数体} 说明: 返回值类型可以是C语言中的任意数据类型. 函数名是标识符的一种,命名规 ...