在学操作系统和网络时穿插着学过一点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--入门相关推荐

  1. 视频教程-Linux程序设计从入门到实战-C/C++

    Linux程序设计从入门到实战 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审计项 ...

  2. linux学习步骤(从入门到精通)

    linux学习步骤(从入门到精通) 来源:http://os.chinaunix.net/a2008/0603/980/000000980392.shtml 博客 作者:新华网 编辑:周荣茂 学习步骤 ...

  3. linux 嵌入式程序设计

    [推荐] 嵌入式开发资料集锦 嵌入式开发网站集锦! 国内站点: 电子设计信息网,尽管是个业界新秀,但潜力无量!这里能带给你无限精彩和希望! http://www.edires.net/ 华恒公司的主页 ...

  4. 《Linux 高级程序设计(第三版)》——导读

    ** 前言 ** Linux应用开发是目前最为广泛的软件开发内容之一,同时也是从事Linux内核及驱动开发的基础.<Linux高级程序设计>一书经过两次出版,收到了大量的读者来信,对本书提 ...

  5. Linux大棚版redis入门教程

    后端开发过程中,有时需要考虑系统的实时性,那么缓存系统就派上用场了,当然,现在最常用的当属Redis,这篇文章转自 Linux大棚版redis入门教程 [本教程目录] redis是什么 redis的作 ...

  6. 20165301 预备作业三:Linux安装及命令入门

    预备作业三:Linux安装及命令入门 VirtualBox虚拟机的安装 在进行安装之前,原本以为有了娄老师的安装教程会是一件很容易的事情.万万没想到,在自己实际动手操作中,还是遇到了许多困难.通过与同 ...

  7. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记

    转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...

  8. Linux 应用程序开发入门

    Linux 应用程序开发入门 Neo Chen (netkiller) <openunix@163.com> 版权 © 2011, 2012 http://netkiller.github ...

  9. linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]

    Linux高级程序设计(第2版)以Linux操作系统(内核为2.6版本)为开发平台.GCC 4.0/GDB 6.3为开发调试环境,详细介绍了Linux系统下编程环境及编程工具.文件管理(文件类型.AN ...

  10. 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验

    实验六交叉编译及Linux简单程序设计实验的实验报告 一实验目的 1.了解和掌握交叉编译模式和方法: 2.熟悉和掌握Linux简单程序设计. 二实验环境 预装Fedora10_A8_Linux的pc机 ...

最新文章

  1. 商务网站开发这些优势值得青睐
  2. Lodop导出图片和打印机无关,测试是否有关
  3. 一句话讲清楚IOC容器以及什么时候使用@Autowired
  4. 2018双十一苏宁20+篇技术干货全整理
  5. Vue项目用webpack打包后,预览时资源路径出错(文末有vue项目链接分享)
  6. 常见的软件测试方法有,常见的几种软件测试方法都有哪些
  7. es文件管理复制到fpt服务器,达人教你玩应用:ES文件浏览器之文件互传
  8. 网络对时服务器(NTP校时服务器)应用港口信息化系统
  9. 我对顶级域名、一级域名和二级域名的认识
  10. 分销系统如何加粉,三级分销政策,B2B2C分销规则
  11. CF1427E Xum
  12. python turtle画彩虹的源代码_Python基础实例——绘制彩虹(turtle库的应用)
  13. PayPal和Payssion有什么差别?
  14. 三、入门Python第三课
  15. Cesium 贝塞尔曲线、抛物线(笔记)
  16. probit logit
  17. es6中类的使用、及其转es5源码解析
  18. 免费分享一套详细的Java面试视频
  19. paint和paintComponent方法的关系
  20. Allegro PCB Editor 如何制作Logo

热门文章

  1. 黑客帝国中的代码雨写法
  2. 电子科技大学《图论及其应用》复习总结--第四章 欧拉图与哈密尔顿图
  3. 【Win32】只此一篇 让你清楚明细模式(DialogBoxParam)与非模式(CreateDialogParam)对话框的区别
  4. c++整人小程序(附源码)
  5. ListView优化的
  6. 西安电子科技大学计算机学院数据结构真题,数据结构1800题(标准答案全)
  7. 机器学习(6): 决策树算法 小结与实验
  8. 大蟒蛇Python平台相关知识
  9. 亚信科技java笔试题答案_亚信科技java面试题及答案.doc
  10. dos盘启动计算机,u盘制作dos启动盘方法