[linux]LINUX程序设计cc1--入门
在学操作系统和网络时穿插着学过一点LINUX.今天开始系统的从头开始学习一下,教材是《Linxu程序设计》和《Unix环境高级编程》。
第一天:
UNIX系统:一种遵循特定规范的计算机系统,定义了所有必需的系统函数的名称、接口、行为。
Linux:一个自由发布的类Unix内核实现,是一个操作系统的底层核心。
GNU(GUN'S NOT UNIX)的GPL:自由软件及其通用许可证。(视为一种与不自由的Unix的抗议,copyleft:copyright的对立)
发行版:包含内核及很多GNU工具
文本工具:emacs,vim,gedit都是很实用的编辑器
编译器:一般自带gcc,复习下使用命令:gcc -o hello hello.c,当前目录下就生成了可执行的hello文件了:./hello
实践:创建一个小型函数库
1.工具函数:bill.c,fred.c
gcc -c bil.c fred.c//执行后从源文件编译到bill.o,fred.o目标文件
2.接口头文件申明函数:lib.h
3.调用文件:program.c
gcc -c program.c
gcc -o program program.o bil.o//链接成可执行文件
4.创建并使用一个库文件
ar crv libfoo.a bill.o fred.o//ar工具将若干单独文件归并到一个大的文件中(lib*.a为静态库命名)libfoo.a
gcc -o program1 program.o libfoo.a//可以用自己的库文件来链接了
或者 gcc -o program program.o -L. -lfoo//-L选项指定搜索目录,-lfoo(指定库的名字,lfoo:libfoo的简写)
总结:调用文件program.c 中 include 库头文件
链接时 program.o 和 库文件的归并文件 libfoo.a
分离了用户代码,头文件,库(.a)。
问题:静态库被多个程序调用时会在内存出现多个副本。
共享库:程序本身不在包含函数代码,而是引用可访问的共享代码。只有在必要时,才被加载到内存中。
[linux]LINUX程序设计cc1--入门相关推荐
- 视频教程-Linux程序设计从入门到实战-C/C++
Linux程序设计从入门到实战 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项 ...
- linux学习步骤(从入门到精通)
linux学习步骤(从入门到精通) 来源:http://os.chinaunix.net/a2008/0603/980/000000980392.shtml 博客 作者:新华网 编辑:周荣茂 学习步骤 ...
- linux 嵌入式程序设计
[推荐] 嵌入式开发资料集锦 嵌入式开发网站集锦! 国内站点: 电子设计信息网,尽管是个业界新秀,但潜力无量!这里能带给你无限精彩和希望! http://www.edires.net/ 华恒公司的主页 ...
- 《Linux 高级程序设计(第三版)》——导读
** 前言 ** Linux应用开发是目前最为广泛的软件开发内容之一,同时也是从事Linux内核及驱动开发的基础.<Linux高级程序设计>一书经过两次出版,收到了大量的读者来信,对本书提 ...
- Linux大棚版redis入门教程
后端开发过程中,有时需要考虑系统的实时性,那么缓存系统就派上用场了,当然,现在最常用的当属Redis,这篇文章转自 Linux大棚版redis入门教程 [本教程目录] redis是什么 redis的作 ...
- 20165301 预备作业三:Linux安装及命令入门
预备作业三:Linux安装及命令入门 VirtualBox虚拟机的安装 在进行安装之前,原本以为有了娄老师的安装教程会是一件很容易的事情.万万没想到,在自己实际动手操作中,还是遇到了许多困难.通过与同 ...
- 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...
- Linux 应用程序开发入门
Linux 应用程序开发入门 Neo Chen (netkiller) <openunix@163.com> 版权 © 2011, 2012 http://netkiller.github ...
- linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]
Linux高级程序设计(第2版)以Linux操作系统(内核为2.6版本)为开发平台.GCC 4.0/GDB 6.3为开发调试环境,详细介绍了Linux系统下编程环境及编程工具.文件管理(文件类型.AN ...
- 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验
实验六交叉编译及Linux简单程序设计实验的实验报告 一实验目的 1.了解和掌握交叉编译模式和方法: 2.熟悉和掌握Linux简单程序设计. 二实验环境 预装Fedora10_A8_Linux的pc机 ...
最新文章
- 商务网站开发这些优势值得青睐
- Lodop导出图片和打印机无关,测试是否有关
- 一句话讲清楚IOC容器以及什么时候使用@Autowired
- 2018双十一苏宁20+篇技术干货全整理
- Vue项目用webpack打包后,预览时资源路径出错(文末有vue项目链接分享)
- 常见的软件测试方法有,常见的几种软件测试方法都有哪些
- es文件管理复制到fpt服务器,达人教你玩应用:ES文件浏览器之文件互传
- 网络对时服务器(NTP校时服务器)应用港口信息化系统
- 我对顶级域名、一级域名和二级域名的认识
- 分销系统如何加粉,三级分销政策,B2B2C分销规则
- CF1427E Xum
- python turtle画彩虹的源代码_Python基础实例——绘制彩虹(turtle库的应用)
- PayPal和Payssion有什么差别?
- 三、入门Python第三课
- Cesium 贝塞尔曲线、抛物线(笔记)
- probit logit
- es6中类的使用、及其转es5源码解析
- 免费分享一套详细的Java面试视频
- paint和paintComponent方法的关系
- Allegro PCB Editor 如何制作Logo
热门文章
- 黑客帝国中的代码雨写法
- 电子科技大学《图论及其应用》复习总结--第四章 欧拉图与哈密尔顿图
- 【Win32】只此一篇 让你清楚明细模式(DialogBoxParam)与非模式(CreateDialogParam)对话框的区别
- c++整人小程序(附源码)
- ListView优化的
- 西安电子科技大学计算机学院数据结构真题,数据结构1800题(标准答案全)
- 机器学习(6): 决策树算法 小结与实验
- 大蟒蛇Python平台相关知识
- 亚信科技java笔试题答案_亚信科技java面试题及答案.doc
- dos盘启动计算机,u盘制作dos启动盘方法