自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 资源 (8)
  • 收藏
  • 关注

原创 软考高级系统架构设计师你想知道的全在这!

2021年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?!今年刚参加完系分考试,不知道有没有通过,但感觉应该差不多,这里给自己点个赞!自软考系列文章发表之后有很多准备参加软考的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在工作、学习的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问

2020-11-12 23:00:28 327 3

原创 2020软考高级系统分析师,你想知道的全在这

2020年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在

2020-08-16 22:36:29 372 1

原创 2020备考[嵌入式系统设计师]你准备好了吗?

2020年准备参加软考获取中级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在

2020-07-23 22:56:54 324

原创 经典生产者-消费者问题解析
原力计划

1.生产者-消费者问题生产者和消费者问题在现实系统中是很普遍的。例如在一个多媒体系统中,生产者编码视频帧,而消费者消费(解码)视频帧,缓冲区的目的就是减少视频流的抖动。又如在图形用户接口设计中,生产者检测到鼠标和键盘事件,并将其插入到缓冲区中。消费者以某种基于优先级的方式从缓冲区中取出这些事件并显示在屏幕上。生产者和消费者模式共享一个有n个槽位的有限缓冲区。生产者反复地生成新的item,并将它...

2020-04-09 14:35:33 460

原创 Linux下的网络编程看这篇就够了

1.全球IP因特网1.1数据在互联网上的传输过程1.2 一个网络程序的软硬件组织1.3 IP地址结构一个IP地址就是一个无符号32位整数。网络程序将其存放在如下所示结构体中:struct in_addr{ uint32_t s_addr; //大端法表示的IP地址};因为网络字节序都是大端法表示的,所以Unix提供了一组函数用于在网络和主机间进行字节序的转换:#...

2020-03-26 11:28:31 46

原创 Linux中的信号机制
原力计划

信号就是一条消息,通知进程系统中发生了什么事,每种信号都对应着某种系统事件。一般的底层硬件异常是由内核的异常处理程序处理的,它对用户进程来说是透明的。而信号机制,提供了一种方法通知用户进程发生了这些异常。例如,一个进程试图除0,会引发内核向他发送SIGFPE信号;执行非法指令会引发SIGILL信号;非法内存访问引发SIGSEGV;当你从键盘上键入Ctrl + C会引发SIGINT;当某个子进程结...

2020-03-21 23:38:00 100

原创 嵌入式硬件抽象层HAL的实现

硬件抽象层对下必须检验查看目前硬件配置的能力与限制,以及将来可能的扩展性,对上得倾听系统软件得需求。简单得说,HAL就是我们系统的“硬件”,而“硬件”的功能就是它所提供的API,即所有上层的程序完全不需要知道硬件与驱动程序的细节,只能通过HAL来操控硬件。按照这样的逻辑,通常我们实现HAL的流程如下:定义HAL的规模(Scope):根据需求分析上层的系统和应用程序需要哪些硬件功能,这些需求就是HAL必须要包含的基本模块,然后再根据硬件配置,分析是否仍有目前系统没用到的硬件功能,这些功能可能会在下一代产品

2020-11-29 22:31:32 13

原创 嵌入式硬件抽象层HAL的设计实现

硬件抽象层对下必须检验查看目前硬件配置的能力与限制,以及将来可能的扩展性,对上得倾听系统软件得需求。简单得说,HAL就是我们系统的“硬件”,而“硬件”的功能就是它所提供的API,即所有上层的程序完全不需要知道硬件与驱动程序的细节,只能通过HAL来操控硬件。按照这样的逻辑,通常我们实现HAL的流程如下:定义HAL的规模(Scope):根据需求分析上层的系统和应用程序需要哪些硬件功能,这些需求就是...

2020-11-29 22:28:27

原创 细说嵌入式驱动程序设计

嵌入式系统驱动程序的开发有别于WIndows或Linux。后者除了必须了解新设备的硬件特性,把控制硬件的程序尽快完成之外,还需要设法让驱动程序符合Windows或Linux的规定(大且复杂的架构)。但在嵌入式系统中,往往是先设计驱动程序再有系统,所以只需要致力于驱动各个外围设备,而且嵌入式产品一般没有后期新增硬件的需求,所以不要求驱动程序编写的有扩展性,只需要逻辑清晰,简单明了就可以。往往驱动程...

2020-11-29 19:16:59

原创 细说嵌入式系统下的驱动程序设计

嵌入式系统驱动程序的开发有别于WIndows或Linux。后者除了必须了解新设备的硬件特性,把控制硬件的程序尽快完成之外,还需要设法让驱动程序符合Windows或Linux的规定(大且复杂的架构)。但在嵌入式系统中,往往是先设计驱动程序再有系统,所以只需要致力于驱动各个外围设备,而且嵌入式产品一般没有后期新增硬件的需求,所以不要求驱动程序编写的有扩展性,只需要逻辑清晰,简单明了就可以。往往驱动程序分为两层:Driver层和API层。前者是真正驱动硬件设备的程序,后者是负责与系统或应用程序交互的接口,对外隐

2020-11-29 19:11:34 33

原创 QegellHzTc

重要通知即日起本博客的文章也将同步更新到“牛客网”!

2020-11-28 23:45:41 5

原创 详解嵌入式系统Boot-Loader

上电之后(bootload阶段)该做什么1、第一行程序拿到空PCB板之后,硬件工程师首先会测试各主要线路是否通连,各焊点是否有空焊、断接或短路的情况,然后逐个模块焊接上去。之后需要验证系统上电之后,CPU与各组件的供电电压是否正常,供给CPU的震荡电路能否能够正常起振,外部存储器能否正常读写。当把我们的程序用JTAG工具下载到板子上后,在真正调试系统前需要做好以下检查:利用调试工具,在程...

2020-11-25 23:23:55 11

原创 Linux专家必读的几本书

工作几年来,一直从事Linux内核驱动方面的开发。从接触Linux到现在,读过不少Linux方面的书籍,现把认为很不错的一部分列出来和大家分享一下。入门类一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。有需要的可以加QQ:114375165,5元一本。现在的Linux初学者是幸福的,随着Linux桌面环境越来越易用,入门一个新的系

2020-11-22 23:04:21 12 1

原创 嵌入式系统开发环境概述

嵌入式系统开发环境主要包括:集成开发工具交叉编译器批处理文件makefileLink Script调试工具下载工具其它工具(Offline Tools)模拟器版本控制工具接下来分别讲解以上各个工具:1、集成开发工具一般CPU厂商会提供针对该CPU的集成开发环境(IDE),但在实际应用中,大多数嵌入式项目开发公司都还是会使用自己开发的环境。一是项目某些功能的特殊性要求,...

2020-11-22 22:19:36 39

原创 嵌入式系统平台构建介绍

我对嵌入式系统平台的定义很简单:能让电子产品的原因程序得以顺利开发的环境,主要包括;系统软件与驱动程序硬件平台开发环境(compiler、调试与下载工具)模拟器程序编写规范所以,在嵌入式软件开发团队中一般会有一个 “系统平台组”,他们的工作主要有:系统架构设计与实现嵌入式操作系统设计与实现API设计与实现存储器使用配置(规范某个模块或程序能使用的存储器地址范围)开发环境...

2020-11-19 23:36:46 35

原创 嵌入式系统开发项目管理

项目生命周期五大阶段1、项目启动阶段(1)项目可行性分析一个成功的产品,应该从以下3个方面来观察评估:设计产品:商业行为产品设计前,要做好市场调查和评估,要考虑产品的时效性、市场需求和技术可行性;产品设计结束后要写下详细的产品规格(技术层次、人力资源、开发费用、产品成本)尽量避免中途更改产品规格;凡事以最终用户需求或体验为准。管理项目:管理行为项目经理必须清楚了解...

2020-11-14 20:23:00 51

转载 嵌入式驱动解析:从串口驱动到Linux驱动模型

本文通过对Linux下串口驱动的分析。由最上层的C库。到操作系统系统调用层的封装。再到tty子系统的核心。再到一系列线路规程。再到最底层的硬件操作。对Linux中的tty子系统进行简要的说明。从理论到实践。以便读者能对OS原理有更深入的了解和更具体的掌握。在具体分析之前。我们必须对串口。驱动。和Linux操作系统有一定的了解。这一阶段我们有三个问题需要解决:1.什么是Linux操作系统。2.什么是Linux设备驱动。3.关于串口的种种。要了解这些概念。如下我介绍了一点这方面的知识。不过遗憾的是对

2020-11-02 22:51:23 111

原创 Win10自带Ubuntu子系统的安装与配置

程序猿们有福了!!!Windows和Linux终于合体了,在同一个WIN10系统下,你既可以继续享受微软给我们带来的便捷,同时又可以开开心心的码代码了,而且有了海量的Linux工具支持。安装Windows Terminal在远程连接其他Linux的时候,我通常使用Xshell,就因为它长得比较漂亮耐看。但今天在Windows上,我们也可以安装Windows Terminal。它有点类似于MacOS上的iTerm,可以说是Windows下最舒适的终端。第一步,从应用商店去获取安装Windows Term

2020-10-07 16:26:43 238 2

转载 关于嵌入式C代码优化的几种方法

1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码作用是相同的,但是效率不一样。数组索引:fo

2020-09-15 23:11:24 111

原创 libpng warning: iCCP: known incorrect sRGB profile

问题:当在pycharm中引用pygame模块导入png图像运行后,发出警告:libpng warning: iCCP: known incorrect sRGB profile原因:因为libpng-1.6以上版本增强了ICC profiles检查,所以发出警告。此警告可以忽略。若要消除警告则要从原图像中去掉ICCP chunk。方法:利用png编辑器软件去除chunk,例如imageMagick。步骤:下载安装magick软件:点此下载以windows为例,下载安装完之..

2020-07-29 20:01:51 218

原创 pycharm中导入pygame库失败及解决办法

ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url:…需求:在win10下使用pycharm编程,其中需要用到第三方库pygame。初步解...

2020-07-29 15:22:25 688

原创 在Python 2.x中如何使用中文

在Python 2.x中如何使用中文在计算机中有两种文本文件编码格式,一是早期的ASCII编码格式,还有一种是现在普遍使用的Unicode编码格式;前者用一个字节表示一个字符,只能表示出256种字符,而后者用1~6个字节表示一个字符,能表示出地球上的所有字符。Python 2.x 默认使用ASCII编码格式Python 3.x 默认使用UTF-8编码格式1. 解决显示中文问题在Python 2.x文件的第一行增加以下代码,解释器会以UTF-8编码来处理Python文件# *-* codi

2020-07-28 22:09:36 95

原创 如何将.ipynb文件转换为.py文件

作业条件:在jupyter notebook下编写完程序,保存为“myprogram.ipynb”。作业目的:选择在jupyter notebook下编写python程序(因为喜欢它的界面简单可实时看到运行效果的特点),调试成功之后保存成py文件,以便在其它电脑上运行(因为jupyter notebook默认保存的是.ipynb文件 )。作业实施:命令行下进入“myprogram...

2020-07-19 23:23:56 281

原创 本地浏览器连接服务器端jupyter notebook服务

当前环境:本地客户端环境:window环境,ssh连接工具(putty、Xshell、FinalShell等)或者是win10自带的命令行终端,任意浏览器;服务器端环境:Linux操作系统(ubuntu、centos、Debian等)中,已安装了python3,jupyter notebook插件。未来愿景:本地客户端ssh连接到服务器端,打开服务器的jupter notebook服务后,通过本地客户端的浏览器连接到jupter notebook服务。设置步骤:1 连接到服务器打.

2020-07-19 17:21:38 127

原创 本地浏览器下远程连接jupter notebook服务器

当前环境:本地客户端环境:window环境,ssh连接工具(putty、Xshell、FinalShell等)或者是win10自带的命令行终端,任意浏览器;服务器端环境:Linux操作系统(ubuntu、centos、Debian等)中,已安装了python3,jupyter notebook插件。未来愿景:本地客户端ssh连接到服务器端,打开服务器的jupter noteb...

2020-07-19 17:19:53 74 2

转载 ubuntu下如何设置环境变量

一、设置环境变量的三种方法1.1 临时设置export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH1.2 当前用户的全局设置打开~/.bashrc,添加行:export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH使生效:source .bashrc1.3 所有用户的全局设置$ vim /etc/profile在里面加入:export PATH=/home/yan/

2020-07-18 23:10:10 65

原创 ssh免密登录设置方法

1 前提条件主机A,用户名为aris,IP地址为192.168.1.1主机B,用户名为leon,IP地址为192.168.1.2这两台主机上均安装了SSH服务器,且已经打开ssh服务;检查主机上有没有安装SSH服务,使用命令:ssh若提示命令未找到,则需要安装ssh服务;步骤如下:输入sudo apt-get update命令以实现更新Ubuntu系统–>输入sudo...

2020-07-18 16:58:17 162

原创 主机之间ssh免密码登录

1 前提条件主机A,用户名为aris,IP地址为192.168.1.1主机B,用户名为leon,IP地址为192.168.1.2这两台主机上均安装了SSH服务器,且已经打开ssh服务;检查主机上有没有安装SSH服务,使用命令:ssh若提示命令未找到,则需要安装ssh服务;步骤如下:输入sudo apt-get update命令以实现更新Ubuntu系统–>输入sudo apt-get install openssh-server命令以安装ssh若输出ssh命令的使用说明,则代表

2020-07-18 16:57:02 173

原创 ubuntu与windows互传文件的3种方法

一般在进行编程作业的时候,我们会采用“开发在Windows中编辑源代码,在linux中编译、执行源代码。这往往需要需要将在Windows下编辑好的源代码上传到linux系统种进行编译。怎么来进行上传呢?其实可以有3种方法,下面一一为大家讲解:一、通过VMWare的共享文件夹实现:先在Windows中创建一个文件夹,注意要使用英文名称,例如"shared_folders"。然后在VMWare中,依次点击菜单栏 VM -> Settings -> Options -> Shared F

2020-07-18 12:36:54 1512

原创 ubuntu16.04安装Sogou输入法详细步骤

1. 添加fcitx的键盘输入法系统因为sogou是基于fcitx的,而系统默认的是iBus,所以要想使用搜狗输入法首先必须更改ubuntu默认的键盘输入法系统。步骤:系统设置—>语言支持—>键盘输入法系统—>下拉菜单选择“fcitx"。2. 安装sogou输入法(1)登录搜狗官网,下载linux版本的输入法,32位或64位根据自己电脑选择。(2)找到下载到的deb文件,双击安装或终端安装。但此处建议利用终端安装。因为在安装前检查是否*(3)终端下打开sogou的d

2020-07-05 16:30:55 982

原创 ubuntu下安装jupyter notebook问题。ERROR: Package ‘ipython‘ requires a different Python: 3.5.2 not in 」=3.6

目标:在Ubuntu 16.04中安装jupyter notebook。步骤:1.安装python3leon@ubuntu:~$ sudo apt-get install python32.安装pip3leon@ubuntu:~$ sudo apt-get install pip33.升级pip3到最新版本sudo pip3 install --upgrade pip4.安装jupyter notebookleon@ubuntu:~$ pip3 install jupyter4

2020-07-05 13:35:24 560 1

原创 VmWare虚拟机设置ubuntu和windows之间的共享文件夹

一般在进行编程作业的时候,我们会采用“开发在Windows中编辑源代码,在linux中编译、执行源代码。这往往需要需要将在Windows下编辑好的源代码上传到linux系统种进行编译。怎么来进行上传呢?其实通过VMWare的共享文件夹就可以轻松实现:1先在Windows中创建一个文件夹,注意要使用英文名称,例如"shared_folders"。2然后在VMWare中,依次点击菜单栏 VM...

2020-05-21 22:40:44 374

原创 标准测试宏选项

系统调用和库函数的标准有多种多样(UNIX 、POSIX、BSD、V等),为了使我们编写的程序具有高度的兼容性,在编译时需要指定或弄清楚程序所在运行环境的类型。在编程时,在引进头文件之前利用#ifdef语句来判断程序运行环境并分别引用不同的头文件。然后在命令行编译时,提供指定选项来设置本次编译的环境。$ cc -D_BSD_SOURCE prog.c编译选项-D后接指定的环...

2020-04-16 14:28:38 36

原创 C库函数、系统函数等调用错误的处理方法
原力计划

几乎所有的系统函数和库函数在执行时都会通过返回特定的值来说明成功或出错。我们在调用它们后,必须马上对其返回值进行检测,如果调用出错则要进行相应的处理(一般是向终端输出错误信息并终止程序运行)。否则在今后程序出错时,如果通过调试去定位到该错误将会花费很长的时间。当然也有某些系统调用从不失败(例如getpid()或_exit()等),在调用它们时可以不进行错误检测。1.如何发现系统调用出错...

2020-04-16 14:23:46 197

原创 比atoi()函数更健壮的一类包装函数

今天介绍两个函数用以代替库函数atoi()、atol()和strtol()函数,原因是它能提供比库函数更好的错误检查机制。int getInt(const char *arg, int flags, const char *name);long getLong(const char *arg, int flags, const char *name);arg指向待转的数字字符串,flag...

2020-04-16 14:18:56 68

原创 linux下的并发编程详解

使用应用级并发的应用程序称为并发程序(concurrent program)。现代操作系统提供3种基本的构造并发程序的方法:进程、I/O多路复用和线程。下面将分别予以讨论。1. 基于进程的并发编程我们可以利用熟悉的fork、execve及waitpid函数来开发基于进程的并发编程。下面以构造并发服务器为例,在服务器程序中,父进程接受客户端的连接请求,然后创建一个新的子进程为每一...

2020-04-06 00:00:19 143

翻译 一文学会GDB操作命令

GDB快速指南版本 2 (2009 6月 14)原文这是一个非常快速的GDB指南,旨在让你开始在终端的命令行下熟练使用GNU调试器gdb。更多详细信息,查看官方GDB 文档!此外,一个好的GNU GDB前端是数据显示调试器DDD。编译您必须告诉编译器使用包含符号调试的信息来编译代码。下面介绍如何使用gcc,使用**-g**开关:$ gcc -g hello.c -o hello ...

2020-03-27 15:42:42 99

原创 详解高速缓存存储器的3种映射方式

开始的计算机系统中存储器层次包括CPU寄存器、主存(DRAM)和硬盘,后来为了缓解寄存器与主存间速度的差异,系统设计者在它们之间增加了高速缓存(SRAM),它的访问速度几乎可以和寄存器一样快。随着CPU和主存的性能差距逐渐拉大,后来在原高速缓存(L1高速缓存)和内存之间有增加了L2和L3级高速缓存。一般访问寄存器需要1个时钟周期,访问L1级高速缓存需要4个时钟周期,访问L2级高速缓存需要10个...

2020-03-25 13:42:50 754

原创 C程序中如何读取目录中的文件并判断文件大小等信息

读取目录内容应用程序可以用readdir系列函数来读取目录内容。#include <sys/types.h>#include <dirent.h>DIR *opendir(const char *name); //成功返回目录指针,失败返回NULLstruct dirent *readdir(DIR *dirp); //成功返回目录项指针,已读完或失败返回NU...

2020-03-24 17:37:12 80

原创 各种I/O函数的选用原则

应用程序可以通过诸如open、close、lseek、read、write和stat这样的函数来访问文件或I/O设备。更高级别的还有标准I/O及RIO( CS:AP网站参考代码 ,为了修补read等系统IO函数的不足而撰写的健壮的包装函数,它们自动处理不足值,为读文本行提供一种高效的带缓冲的方法。)在实际编程中如何选用这些函数呢?下面提供一些基本原则:只要又可能就使用标准I/O。特别是对磁...

2020-03-24 16:24:50 50

一个实用高频基本电路集

对于学习高、射频的人来说非常有用哦,资源包含了许多通用和常见的基本高频电路设计单元和模块,特别适合初学者。

2010-11-17

操作系统知识.pdf

计算机软件能力和技术测试考试中的操作系统知识,软考高级中系统分析师和架构师的必备知识点,需要的同学赶紧下载吧!!!!

2020-08-12

自写嵌入式系统设计师考试笔记.doc

我是去年考过的计算机技术与软件专业技术资格(水平)考试中的中级嵌入式系统设计师,成绩也不错,这是我看书,培训中总结的笔记,很重要,现在供大家下载。

2020-07-28

历年真题06-11.zip

计算机技术与软件专业技术资格(水平)考试2006年至2011年的下午考题,有需要的同学可以下载下来看看。做真题真的很重要的,重要的事情说3遍:做真题真的很重要的。做真题真的很重要的。做真题真的很重要的!

2020-07-28

历年真题12-18.zip

计算机技术与软件专业技术资格(水平)考试2012年至2018年的下午考题,有需要的同学可以下载下来看看。做真题真的很重要的,重要的事情说3遍:做真题真的很重要的。做真题真的很重要的。做真题真的很重要的!

2020-07-28

RIO包-用于网络编程的健壮读写函数.md

它会自动处理你上下文中所述的不足值,提供了方便/健壮和高效的IO。 本代码分别提供了无缓冲和带缓冲的输入输出函数: 无缓冲:rio_readn和rio_writen 带缓冲:rio_readinitb、rio_readlineb、rio_readnb

2020-03-26

picgo_typora.zip

内含2个安装包,一个是Picgo-2.2.0 一个是typora。二者加起来可以方便的在利用typora编写markdown语法的文章时插入图片,便于多平台传递、查看markdown文章。

2020-03-25

一文教你如何构建静态链接库.md

主要描述如何构建自己的静态库。话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?

2020-03-19

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除