学习目标 1.熟悉Linux系统下的开发环境 2.熟悉vi的基本操作 3.熟悉gcc编译器的基本原理 4.熟练使用gcc编译器的常用选项 5.熟练使用gdb调试技术 6.熟悉makefile基本原理及语法规范 7.掌握静态库和动态库的生成与调用方法 8.理解C程序中模块的概仿,模块分解的“高内聚,低 ...
分类:
其他好文 时间:
2019-09-22 23:54:03
阅读次数:
188
2019 2020 1 20175329 《信息安全系统设计基础》第1周学习总结 教材学习内容总结 程序被其他程序翻译成不同的格式 处理器读并解释存储再内存中的指令 处理器读并解释存储再内存中的指令 运行hello程序 编译器驱动程序 静态链接 静态库连接 教材学习中的问题和解决过程 问题1:无法找 ...
分类:
其他好文 时间:
2019-09-22 23:40:37
阅读次数:
109
C语言编译过程 编译 >形成目标代码,目标代码是在目标机器上运行的代码。 连接 >将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。 执行 >在特定的机器环境下运行C程序。 如果用一张图来表示: 编译,编译程序读取源程序(字符流),对之进行词 ...
分类:
编程语言 时间:
2019-09-20 19:04:00
阅读次数:
56
在阅读《程序员的自我修养 链接装载与库》的第四章 ==静态链接== 4.6.2==最小的程序==时,发现代码是基于linux32位系统的程序,无法在64位系统上编译和运行。 正确的64位程序应该为 代码 运行结果 原因 linux系统中64位汇编和32位汇编的系统调用主要有以下不同: 系统调用号不同 ...
分类:
其他好文 时间:
2019-09-09 23:01:11
阅读次数:
104
1、有利于软件程序的更新维护,节省内存磁盘空间 2、使得开发的过程中的各个模块更加独立,耦合度小,便于独立进行开发测试 1、 代码装载速度快,执行速度略比动态链接库快; 2、 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问 ...
分类:
系统相关 时间:
2019-09-02 23:32:19
阅读次数:
119
内存管理的?标:实现内存分配和回收,提高内存空间的利用率和内存的访问速度 一、存储器的层次结构 数据存储的局部性原理: 局部性:在?段较短时间内,程序的执?仅限于某个部分,相应地它所访问的存储空间也局限于某个区域 分类: 时间局部性:某条指令?旦执?,不久 后该指令可能再次执? 空间局部性:?旦程序 ...
分类:
其他好文 时间:
2019-08-31 22:59:01
阅读次数:
60
原文章地址:https://www.cnblogs.com/TenosDoIt/p/3203137.html#c 首先介绍一下静态库(静态链接库)、动态库(动态链接库)的概念,首先两者都是代码共享的方式。 静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件(链接过程就已经复 ...
分类:
其他好文 时间:
2019-08-17 18:14:28
阅读次数:
91
何为动态链接库和静态链接库?它们都是共享代码的方式。动态链接使用动态链接库,动态链接允许可执行文件(.dll或.exe)在运行时调用动态链接库中的某个函数。(程序运行阶段)静态链接使用静态链接库,链接器从静态链接库获取所有被引用函数,并将这些函数加入到可执行文件中。(程序编译链接阶段)静态链接库的使 ...
分类:
其他好文 时间:
2019-07-27 18:28:34
阅读次数:
75
1. 概述 1.1 基本概念 动态加载是一种程序加载技术。 静态链接是在链接阶段将程序各模块文件链接成一个完整的可执行文件,运行时作为整体一次性加载进内存。动态加载允许用户将程序各模块编译成独立的文件而不将它们链接起来,在需要使用到模块时再动态地将其加载到内存中。 静态链接将程序各模块文件链接成一个 ...
分类:
其他好文 时间:
2019-06-14 16:42:52
阅读次数:
157
问题: 开发板根文件系统目录: 运行./camera显示: 问题解决: 1.排除根目录路径问题; 2. 加入静态链接库即无问题,但是编译后的".o"文件大小突增,而且也不可能每次编译都使用静态编译 故锁定问题出在动态链接库上。 3.根目录加载Linux所需的所有动态链接库 Linux所有动态链接库全 ...
分类:
其他好文 时间:
2019-06-10 19:59:02
阅读次数:
129