C语言开发工具
1.编写程序的工具:
indent命令将自动调整C代码的缩进风格,个人比较喜欢indent -kr
2.编译C语言程序:
1.gcc编译器:
gcc是一个ANSI C兼容编译器,C++编译器也可以编译C程序,事实上g++编译器内部还是调用了gcc
gcc命令可以启动C编译系统,当执行gcc时,它将完成预处理、编译、汇编和连接4个步骤并最终生成可执行代码,产生的可执行程序默认被保存为a.out文件。gcc处理的 各种文件类型包括:
静态链接库(.a)、共享链接库(.so)、C语言源文件(.c)、C++源文件(.C\.c或者.cpp)、汇编语言文件(.s)、预处理文件(.i)、目标代码文件(.o)
gcc [options] filename-list 注意不能在一个单独的连接字符后面跟一组选项
2.函数库:
标准系统库文件一般存放在Linux文件系统/lib和/usr/lib目录中。
默认情况下,C语言编译器只搜索标准C语言库,要想它搜索到其他库文件,要把库文件放到标准目录中,库文件必须遵循特定的命名规范并且需要在命令行中明确指定;
库文件的名字总是以lib开头,随后的部分指明这是什么库,文件名的最后是.a或者.so。
例如: libm.a 为静态函数库;
gcc -o hello hello.c /usr/lib/libm.a
gcc -o hello hello.c -lm -l会优先搜索共享库
如果库文件不在标准目录中,可用-L增加库的搜索路径
gcc -o x11pro1 x1hello.c -L/usr/openwin/lib -lX11
1.静态库:
函数库最简单的形式是一组处于“准备好使用”状态的目标文件
创建和维护自己的静态库,只要使用gcc -c 和ar 命令对函数分别进行编译。
2.共享库:
静态库存在与每个使用它的应用程序中,而共享库不在使用它的应用程序中,只在应用程序运行时,才去访问共享代码,从而节省了内存。
对Linux系统来说,负责装载共享库并解析客户程序函数引用的程序是ld.so,也可能是ld-linux.so.2或者ld-lsb.so.1,搜索共享库的其他位置可以在文件/etc /ld.so.conf中配置。
3.make工具:
make工具依赖于一个特殊的,名字为makefile或Makefile的文件,这个文件描述了系统中各个模块之间的依赖关系,系统中部分文件改变时,make根据这些关系决定一个需要 重新编译的文件的最小集合。
Makefile是一个文本形式的数据库文件,其中包含一些规则来告诉make处理哪些文件以及如何处理这些文件。
这些规则主要是哪些文件(称为target目标文件)是从哪些别的文件(称为dependency依赖文件)中产生的,以及用什么命令来执行这个过程。
依靠这些信息,make会对磁盘上的文件进行检查,如果目标文件的生成或改动时的时间(文件时间戳)至少比它的一个依赖文件还旧的话,make就执行相应的命令,以更新目 标文件。
一个Makefile文件含有一系列的make规则,每条make规则包含以下内容:
目标文件列表:依赖文件列表
<TAB>命令列表
除非特别指定,否则make工作目录就是当前目录。
以#开头的为注释行,可使用续行号“\”将一个单独的命令延续成几行。
一般情况下,调用make指令可输入:
make target
target是Makefile文件中定义的目标之一,如果省略target,make就将生成Makefile文件中定义的第一个目标。
Makefile中的变量:
定义变量: VARNAME=string
引用变量:${VARNAME}
变量一般都在Makefile的前面部分丁义,按照惯例,所有的Makefile变量都应该是大写。
除了用户自定义的变量外,make还允许使用环境变量、自动变量和预定义变量。因为,在make启动时,make读取系统当前已定义的环境变量,并且创建与之同名同值的 变量。
常用的预定义变量:$@、$?、$<、$^
另外规则的命令重复,可以省略
4.gdb调试工具:
要使用gdb调试程序,必须使用-g参数重新编译该程序。
C语言开发工具的更多相关文章
- LInux系统的C语言开发工具笔记
常用的C语言开发工具有很多,每个开发工具所支持的库函数和对标准的实现都有差异.对于初学者,选择一款使用广泛.上手容易的开发工具才是王道.在Windows 上很多从事C和C++开发的人员都选择VS作为开 ...
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...
- 求推荐go语言开发工具及go语言应该以哪种目录结构组织代码?
go语言的开发工具推荐? go语言开发普通程序及开发web程序的时候,应该以哪种目录结构组织代码? 求推荐go语言开发工具及go语言应该以哪种目录结构组织代码? >> golang这个答案 ...
- Go 语言开发工具
Go 语言开发工具 LiteIDE LiteIDE是一款开源.跨平台的轻量级Go语言集成开发环境(IDE). 支持的操作系统 Windows x86 (32-bit or 64-bit) Linux ...
- ubuntu - 14.04,安装、配置GO语言开发工具Eclipse!!
在配置Eclipse之前,我们必须保证下面这些都已经安装,并且正常工作了: 一,Go语言:参考文章 http://blog.csdn.net/sunylat/article/details/49859 ...
- Unix下C语言开发工具
在Unix下进行C语言开发有一套工具,主要有: 编译器:cc,gcc,clang SSH登录工具:putty,xshell就不说了,尼玛还有后门 make工具:跟Maven一样是项目构建工具,这个使用 ...
- go语言开发工具sublime text3 + gosublime配置
开始go语言开发时,网上google了下go的开发工具,大都推荐 sublime text3+gosublime.但是实际操作中gosublime不能直接安装,需要自己手动安装.将自己的安装过程整理一 ...
- linux c语言开发工具
---恢复内容开始--- C语言编译全过程剖析 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统 ...
- c/c++语言开发工具Dev-cpp【推荐】
Dev-cpp: 工具介绍:https://baike.baidu.com/item/dev%20cpp/5617687?fr=aladdin 百度云下载地址:链接: https://pan.baid ...
随机推荐
- LYNC2013介绍和基础架构准备角色
LYNC2013部署系列PART1:LYNC2013介绍和基础架构准备 前言:LYNC 2013发布已经很久了,本人一直在进行相关的学习和测试,在有限的资源条件下,把能够模拟出来的角色进行了安装部署, ...
- 【strtok()】——分割字符串
对字符串进行分割: 在使用前需要先初始化例如: char * p=strtok(Str," ");/*初始化以" "(以空格字符来分割字符串),即把" ...
- [Python] spides
摘要:本文将介绍用Python进行的爬虫的各种练习以及涉及到的各种知识,包括Http协议,cookie等等 工具 Fiddler Python默认不用代理,所以fiddler不能截取它的包.如果想用用 ...
- HDU2544-最短路(最短路模版题目)
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...
- 使用非 GUI 模式运行 JMeter 压力测试
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...
- VBS调用keybd_event事件
----------------发送alt+v组合按键----------------------Set Wrap = CreateObject("DynamicWrapper") ...
- WINDOWS特有的消息常量标识符
'========================================'WINDOWS特有的消息常量标识符'======================================== ...
- 利用DataImportHandler建索引时一直无法完成
问题研究 项目中需要利用DataImportHandler从hive中sync数据到solr.发现有时候hive sql已经执行完几个小时了,sync任务还没有完成,貌似哪里卡住了.重启solr后重新 ...
- 开源日志系统比较:scribe、chukwa、kafka、flume
1. 背景介绍 许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征: (1) 构建应用系统和分析系统的 ...
- word2vec c代码使用说明
摘要: 1 分词 将文本语料进行分词,以空格,tab隔开都可以.生成分词后的语料 2 训练 对分词后的语料test.txt 进行训练得到模型文件vectors.bin /word2vec -train ...