发展是曲折的但也是前进的

人生路漫漫 只能上下求索
私信 关注
安静平和
码龄11年
  • 2,210,567
    被访问量
  • 76
    原创文章
  • 1,045
    作者排名
  • 320
    粉丝数量
  • 于 2010-04-01 加入CSDN
获得成就
  • 获得263次点赞
  • 内容获得110次评论
  • 获得484次收藏
荣誉勋章
TA的专栏
  • *JAVA
    73篇
  • Hadoop
    33篇
  • HBase
    5篇
  • Hive
    15篇
  • Zookeeper
    2篇
  • *大数据
    16篇
  • Scala
    1篇
  • Spark
  • Python
    25篇
  • Tensorflow
    1篇
  • 数据挖掘与机器学习
    9篇
  • *Linux 操作系统
    42篇
  • 爬虫
  • 数据库
    48篇
  • DotNet
    229篇
  • WEB后端
    24篇
  • WEB前端( HTML JS)
    12篇
  • Flex
    10篇
  • 数据通信
    51篇
  • 流媒体服务器
    38篇
  • ffmpeg
  • 数据结构与算法
    39篇
  • 设计模式(PowerDesigner)
    49篇
  • C/C++
    255篇
  • QT
    7篇
  • 三维(OpenGl D3D)
    13篇
  • 计算机基础
    87篇
  • COM
    20篇
  • 汇编
    9篇
  • 软件工程
    36篇
  • PMP
    2篇
  • 敏捷
  • 杂谈
    14篇
  • Socket编程
    3篇
  • 机器学习
    8篇
  • 深度学习
    2篇
  • 高并发
    5篇
  • 音视频
    7篇
  • EasyDarwin
    2篇
  • redis
  • 数学
    2篇
  • 团队合作
    1篇
  • WebRtc
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Linux内核的整体架构简介

1. 前言本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。注:本文和其它的“Linux内核分析”文章都基于如下约定:  a) 内核版本为Linux 3.10.29(该版本是一个long term的版本,会被Linux社区持续维护至少2年...
转载
640阅读
0评论
2点赞
发布博客于 3 年前

AppDomain的作用

AppDomain 类似于一个轻量级进程,它是 .net / mono 代码运行时的一个逻辑容器。一般情况下,我们开发的代码都运行在“运行时”为我们创建的 AppDomain 中(即默认 AppDomain),察觉不到 AppDomain 的存在,也不太需要关注 AppDomain。但在另外一些情况下,有可能需要在应用程序中创建其他 AppDomain,例如:动态卸载程序集:我们知道在 ....
转载
453阅读
0评论
1点赞
发布博客于 3 年前

Net实现高精度计时器

using System;namespace MicroLibrary{ /// <summary> /// MicroStopwatch class /// </summary> public class MicroStopwatch : System.Diagnostics.Stopwatch { read...
转载
421阅读
0评论
1点赞
发布博客于 3 年前

Net中大对象分配出现OutOfMemoryException

Usually, .NET developers don’t need to think too much about how their objects are being laid out in physical memory: after all, .NET has a garbage collector and so is capable of automatically removing...
转载
1181阅读
0评论
0点赞
发布博客于 3 年前

Net中大对象分配出现OutOfMemoryException

Usually, .NET developers don’t need to think too much about how their objects are being laid out in physical memory: after all, .NET has a garbage collector and so is capable of automatically removing...
转载
1181阅读
0评论
0点赞
发布博客于 3 年前

centos7安装后不能上网

vmware安装的centos7中没有出现eth0网卡,也没有ip,不能上网,输入ifconfig后如下图解决办法1.编辑网卡的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 将里面的NAME和DEVICE项修改为eth0[root@localhost ~]# vi /etc/sysconfig/network-scripts/if...
转载
619阅读
0评论
0点赞
发布博客于 3 年前

HTTPS加密流程

转载自:https://www.toutiao.com/a6613628254299357703/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1539909614&app=news_article&utm_source=mobile_qq&iid=46547913405&utm_med...
转载
400阅读
0评论
0点赞
发布博客于 3 年前

C#开发人员应该知道的13件事情

本文参考文章:https://dzone.com/refcardz/csharp转载请注明出自:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助。1. 开发过程开发过程是错误和缺陷开始的地方。使用工具可以帮助你在发布之后,解决掉一些问题。编码标准遵照编码标准可以编写出...
转载
355阅读
0评论
0点赞
发布博客于 3 年前

h264 I帧的判断

H264数据的NALU 头的格式如图2 所示:                                                                                                                            F:forbidden_zero_bit.1 位,如果有语法冲突,则为 1。当网络识别此单元存在比...
转载
673阅读
0评论
0点赞
发布博客于 3 年前

.NET垃圾回收:非托管资源

其实在C#开发中,大部分资源都可以通过.NET垃圾回收机制进行回收,只用当我们使用非托管资源(原始的操作系统文件句柄,原始的非托管数据库连接,非托管内存等等)的时候,我们才需要实现自己的资源清理代码。.NET提供了两种释放非托管资源的方式,类型自己的Finalize方法和IDisposable接口的Dispose方法。下面就来看看这两个跟垃圾回收相关的方法。Finalize方法在....
转载
168阅读
0评论
0点赞
发布博客于 3 年前

.NET垃圾回收:原理浅析

在开发.NET程序过程中,由于CLR中的垃圾回收(garbage collection)机制会管理已分配的对象,所以程序员就可以不用关注对象什么时候释放内存空间了。但是,了解垃圾回收机制还是很有必要的,下面我们就看看.NET垃圾回收机制的相关内容。创建对象在C#中,我们可以通过new关键字创建一个引用类型的对象,比如下面一条语句。New关键字创建了一个Student类型的对象,这个新建的对...
转载
386阅读
0评论
1点赞
发布博客于 3 年前

WebRtc中ICE原理

webRTC支持点对点通讯,但是webRTC仍然需要服务端: . 协调通讯过程中客户端之间需要交换元数据,   如一个客户端找到另一个客户端以及通知另一个客户端开始通讯。 . 需要处理NAT(网络地址转换)或防火墙,这是公网上通讯首要处理的问题。   所以我们需要了解服务端相关的知识:信令、Stun、trun、ice。一、什么是信令信令就是协调通讯的过程,为了建立一个webRTC的通讯...
转载
3713阅读
0评论
0点赞
发布博客于 3 年前

WebRTC中的信令协议

如何为webRTC项目选择信令协议总体来说,有五种不同的webRTC信令协议实现方式:信令协议_______________它是什么______________选择理由SIP over WebSocket     继承自VoIP的老顽固     它可以和现在的多数后端建立连接 XMPP/Jingle                XMPP的狂热分子          因为它是基于XMPP的...
转载
3190阅读
0评论
0点赞
发布博客于 3 年前

完美解决 error C2220: warning treated as error - no object file generated

WinCE 6.0加入一个驱动后,编译出现:error C2220: warning treated as error - no object file generatedwarning C4047: 'initializing' : 'UCHAR' differs in levels of indirection from 'char [3]'warning C4013:…… 等之类的错误,在网...
转载
4091阅读
0评论
1点赞
发布博客于 3 年前

C# 匿名函数引用局部变量解析

using System;namespace Application{ class Test { Action action; public Test() { int value = 2046; action = () => Console.WriteLine(value); } static void Main(string[] args)...
转载
1665阅读
0评论
0点赞
发布博客于 3 年前

浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)

写这篇文章的原因是这两天在编写关于 Dagger2 主题的博文时,花了大量的精力来解释依赖注入这个概念。后来想一下,这些在面向对象开发过程中与依赖相关的诸多术语和概念实际情况下非常的抽象,因此独立成文也有就一定的意义,旨在帮助初学者快速地对这些概念有一个大致的印象,然后通过一些实例来领悟它们之中的内在奥秘。 什么是依赖(Dependency)?依赖是一种关系,通俗...
转载
431阅读
1评论
0点赞
发布博客于 3 年前

解决 win10家庭中文版 远程连接:出现身份验证错误 要求的函数不受支持

转载:https://blog.csdn.net/weixin_39129504/article/details/80303615Windows 5.10日更新后,远程连接出现失败。提示:        出现身份验证错误。要求的函数不受支持        这可能是由于 CredSSP 加密 Oracle 修正。解决办法:        对于win10家庭版,需修改注...
转载
2055阅读
1评论
0点赞
发布博客于 3 年前

团队协作工具的选择

经过了一个月的评测,我们对 21 种泛团队协作工具进行了零距离的试用和体验,并且将我们的体验整理成了前 9 篇文章。在这篇文章之前,编辑部里进行了激烈的讨论,最终定下了我们团队的协作工具。在介绍我们为什么不用,和我们为什么用之前,先为急性子的读者奉上我们的最终选择:Asana(项目管理)+HackPad(会议与头脑风暴)+OneDrive(文件分享)+Google 日历(日程管理)我们最终定下的这...
转载
2199阅读
0评论
0点赞
发布博客于 3 年前

使用TCP负载RTP

下面是使用UDP时的一些问题:UDP协议上的RTSP/RTP需要打开许多UDP端口(每一路流媒体都需要2个UDP端口,一个用于接收数据,一个用于接收控制信息);当因特网上的路由器没有打开这些端口的时候,第一点将会存在问题;中间网络路由器很容易就过滤或者忽略掉UDP数据包;UDP是不可靠传输协议,媒体包在因特网上传输时会面临着丢包。如果在TCP传输协议上承载RTSP/RTP将解决这些问题RTSP/R...
转载
1006阅读
0评论
0点赞
发布博客于 3 年前

RTSP协议详解

1 概述1.1 RTSP简介RTSP(Real Time Streaming Protocol), 实时流传输协议, 是TCP/IP协议体系中的一个应用层协议, 由哥伦比亚大学, 网景和RealNetworks公司提交的IETF RFC标准. 该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据. RTSP在体系结构上位于RTP和RTCP之上, 它使用TCP或RTP完成数据传输.流媒体服...
转载
680阅读
0评论
0点赞
发布博客于 3 年前

git将本地的仓库关联到github上

1、将本地的仓库关联到github上git remote add origin https:// http://7881188.cn/自己的仓库url地址2、上传代码到github远程仓库git push -u origin master执行完后,如果没有异常,等待执行完就上传成功了,中间可能会让你输入Username和Password,你只要输入github的账号和密码就行了.第一次上传有可能会...
原创
820阅读
0评论
0点赞
发布博客于 3 年前

RTSP - RTP over TCP

Normally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it is unlikely to use UDP for streaming over the Internet.通常...
转载
597阅读
0评论
0点赞
发布博客于 3 年前

RTP报文头部分析

RTP报文格式RTP报文由两部分组成:报头和有效载荷。RTP报头格式如下图所示,其中:l V:RTP协议的版本号,占2位,当前协议版本号为2。l P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。l X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。l CC:CSRC计数器,占4位,指示CSRC 标识符的个数。l M: 标记,...
转载
734阅读
0评论
0点赞
发布博客于 3 年前

使用FEC改善UDP(RTP)音视频传输效果

实时音视频领域UDP才是王道              在 Internet 上进行音视频实时互动采用的传输层方案有TCP(如:RTMP)和UDP(如:RTP)两种。TCP协议能为两个端点间的数据传输提供相对可靠的保障,这种保障是通过一个握手机制实现的。当数据传给接收者时,接收者要检查数据的正确性。发送者只有接到接收者的正确性认可才能发送下一个数据块。如果没有接到确认报文,这个数据块就得重传。尽管...
转载
600阅读
0评论
0点赞
发布博客于 3 年前

IntelliJ IDEA(2017)安装和破解 (正版激活码获取)

https://blog.csdn.net/qq_32595075/article/details/79675380
转载
625阅读
0评论
0点赞
发布博客于 3 年前

ClickOnce部署

转自https://www.cnblogs.com/weixing/p/3358740.html(1):一些发布方式ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌。因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本。http://...
转载
442阅读
0评论
0点赞
发布博客于 3 年前

C# 获得空闲可用端口

转自论坛:http://topic.csdn.net/u/20100603/13/ef349c6e-66ee-4129-a884-61c9091a9a99.htmlusing System.Net.NetworkInformation;/// <summary>/// 获取第一个可用的端口号/// </summary>/// <returns></retu...
转载
2020阅读
0评论
0点赞
发布博客于 3 年前

关于app.config不能即时保存读取的解决方案

public void saveValue(string Name, string Value){    ConfigurationManager.AppSettings.Set(Name, Value);    Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);...
转载
634阅读
0评论
0点赞
发布博客于 3 年前

数组、ArrayList和List的区别

有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续更新,欢迎高手斧正.  数组、List和ArrayList的区别  数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如:string[] s=new string[3];//赋值 s[0]="a"; s...
转载
419阅读
0评论
0点赞
发布博客于 3 年前

C# 集合-并发处理

每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!   最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学
转载
3346阅读
0评论
0点赞
发布博客于 3 年前

c# 通过代码的方式来关闭Console application的quick edit模式

const int STD_INPUT_HANDLE = -10;         const uint ENABLE_QUICK_EDIT_MODE = 0x0040;         [DllImport("kernel32.dll", SetLastError = true)]         internal static extern IntPtr GetStdHandle(int hC
转载
590阅读
0评论
0点赞
发布博客于 3 年前

gdb结合coredump定位崩溃进程

Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位。 如何产生core file?我们可以使用ulimit这条命令对core file文件的大小进行设定。一般默认情况下,core file的大小被设置为了0,这样系统就不dump出core file了。这时用如下命令进行设置:ulimit -c unl
转载
562阅读
0评论
0点赞
发布博客于 3 年前

C# 之泛型详解

什么是泛型       我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。为什么要使用泛
转载
278阅读
0评论
0点赞
发布博客于 3 年前

Windows下高精度定时器讨论

获得高精度时间点是可能的,但高精度时间段是比较难的,精度越高受到各方面的影响越大只有QueryPerformanceCounter能突破1ms,内部就是一条汇编语句直接读cpu晶振读数,但容易受到线程排队和消息队列延迟带来的影响,不稳定QueryPerformanceCounter缺点是精度不够高,优点是产生的间隔能突破1ms的限制,可以达到更小的间隔,理论上事件产生的频率可以
转载
840阅读
0评论
0点赞
发布博客于 4 年前

Python安装后删除键方向键不可用

#pythonPython 2.4.3 (#1, Sep 17 2008, 16:07:0 [GCC 4.1.2 20071124 (Red Hat 4.1.2-41)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> daf ^H^[[Dgoogle搜索,
转载
1057阅读
0评论
0点赞
发布博客于 4 年前

桥梁模式应用场景

抽象与实现抽象不应该依赖于实现细节,实现细节应该依赖于抽象。问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办? 举例来说假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有很多种不同的型号:T50,T75,T90……对于其中的坦克设计,我们可能很容易设计出来一个Tank
转载
896阅读
0评论
0点赞
发布博客于 4 年前

大型网站架构演化历程(下)

在大型网站架构演化历程(上)(请戳我)中已经介绍了利用服务器分离、使用缓存、应用服务器集群来提高网站的性能。本文继续介绍优化服务器架构的其它几种方案。数据库读写分离网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的
转载
354阅读
0评论
0点赞
发布博客于 4 年前

SpinWait的性能高于Thread.Sleep

在进行多线程开发时,我们经常会用到Thread.Sleep(timeout_ms)来等待或者腾出时间来让其他线程处理。不过,即使我们把timeout_ms设置为0,Thread.Sleep还是会执行等待操作。这就让人很纳闷了,我明明指定的等待时间是0毫秒,为什么还会执行等待呢?这时因为当我们调用Thread.Sleep时,是让内核暂停处理当前的线程,然后再看需要等待多久,当发现等待时间是tim
转载
2648阅读
1评论
0点赞
发布博客于 4 年前

线程安全的无锁RingBuffer的实现【多个写线程一个读线程】

在之前的一篇博客中,写了一个在特殊情况下,也就是只有一个读线程和一个写线程的情况下,的无锁队列的实现。其中甚至都没有利用特殊的原子加减操作,只是普通的运算。这样做的原因是,即使是特殊的原子加减操作,也比普通的加减运算复杂度高很多。因此文中的实现方法可以达到很高的运行效率。但是,有的情况下并不是只有一个读线程和一个写线程。越是一般化的实现,支持的情况越多,但是往往损失的性能也越多。作者看到过一个
转载
4028阅读
0评论
1点赞
发布博客于 4 年前

线程安全的无锁RingBuffer的实现【一个读线程,一个写线程】

在程序设计中,我们有时会遇到这样的情况,一个线程将数据写到一个buffer中,另外一个线程从中读数据。所以这里就有多线程竞争的问题。通常的解决办法是对竞争资源加锁。但是,一般加锁的损耗较高。其实,对于这样的一个线程写,一个线程读的特殊情况,可以以一种简单的无锁RingBuffer来实现。这样代码的运行效率很高。本文借鉴了Disruptor项目代码。代码我在github上放了一份,需要的同学
转载
1515阅读
0评论
1点赞
发布博客于 4 年前

初探GF-Complete(伽罗瓦运算库)

GF-Complete 是一个开源、综合性的伽罗瓦运算库,相应的文章发表在FAST13 中(见参考文献【1】)。作者是大名鼎鼎的Jim Plank 教授,作为开源纠错码库Jerasure 的开发者,在这个伽罗瓦运算库中创新地采用了SSE 指令集来加速纠错码运算的瓶颈---伽罗瓦运算中的乘法运算,并采用了其他运算方法,综合得到GF-Complete。该库可在Plank 主页中下载得到,下面就GF-C
转载
632阅读
0评论
0点赞
发布博客于 4 年前

完成端口(CompletionPort)详解

本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚…..        这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本
转载
325阅读
0评论
0点赞
发布博客于 4 年前

IOCP的一些思考(粘包,断包的处理)

最近接触了IOCP服务器的编写,对IOCP有了自己的一些认识,希望能对希望正在使用IOCP 的有些建议。我对IOCP了解不多,只是用到了,所以看了一下,还没怎么熟悉。IOCP的一大优势是高并发率,同时连接1万个用户,CPU的使用率也不会很高,只是内存稍微增大一些了。而且对CPU的利用率很好,线程的量被固定了,所以线程可以更好的处理事情。[cpp] view plain
转载
1186阅读
1评论
0点赞
发布博客于 4 年前

支持向量机

本文将尝试对 SVMs 的工作方式进行更高层次的理解。我将更专注于培养直觉理解而不是严密性。这意味着会尽可能跳过数学细节而建立其工作方式的理论的直观理解。自从Statsbot团队发表了关于time series anomaly detection, (时间序列的异常检测)的文章之后,很多读者要求我们介绍支持向量机方法。是时候满足你们的要求了,我将在不使用高深数学的前提下向你们介绍 SVM,分享
转载
382阅读
0评论
0点赞
发布博客于 4 年前

C++内存管理

[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支
转载
838阅读
0评论
2点赞
发布博客于 4 年前

C#自定义值类型

既前两篇之后,这一篇我们讨论通过struct 关键字自定义值类型。在第一篇已经讨论过值类型的优势,节省空间,不会触发Gargage Collection等等。在对性能要求比较高的场景下,通过struct代替类是不错的选择。 那么,比如我们定义一个Point 类型,里面包含两个左边X, Y。 public struct Point {
转载
956阅读
0评论
0点赞
发布博客于 4 年前

分布式数据库数据一致性原理说明与实现

1数据一致性1.1  数据一致性是什么大部份使用传统关系型数据库的DBA在看到“数据一致性”时,第一反应可能都是数据在跨表事务中的数据一致性场景。但是本文介绍的“数据一致性”,指的是“数据在多份副本中存储时,如何保障数据的一致性”场景。由于在大数据领域,数据的安全不再由硬件来保证,而是通过软件手段,通过同时将数据写入到多个副本中,
转载
738阅读
0评论
0点赞
发布博客于 4 年前

C++ string中的几个小陷阱

C++开发的项目难免会用到STL的string,使用管理都比char数组(指针)方便的多,但在得心应手的使用过程中也要警惕几个小陷阱,避免我们项目出bug却迟迟找不到原因。1.  结构体中的string赋值问题直接通过一个例子说明,下面的例子会输出什么:#include #include string> #include
转载
549阅读
0评论
0点赞
发布博客于 4 年前

C++ 出现异常“.... \debug_heap.cpp Line:980 Expression:__acrt_first_block==header"

我的运行环境为VS2015+Opencv2.4.11 FindContours函数出现的调用异常问题如下:  错误:File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp Line: 980 Expression: __acrt_first_block == header For information on how
转载
14870阅读
4评论
5点赞
发布博客于 4 年前

基于图像的人数统计

基于图像的人数统计属于模式识别问题,可应用于安防领域。传统的方法包括:1)视频捕获;2)目标提取(背景建模、前景分析)——常见方法有高斯背景建模、帧差法、三帧差法等;3)目标识别(模式识别、特征点分析),如人脸识别,头肩部识别等,OpenCV里可以使用Hear特征、级联分类器来进行特征检测;4)目标跟踪——基本方法有直方图特征匹配和运动目标连续性匹配,OpenCV里可以使用CamShift算法直接
转载
3696阅读
0评论
2点赞
发布博客于 4 年前

对卷积的理解

作者:鱼腻链接:https://www.zhihu.com/question/22298352/answer/91131073来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。关于卷积的一个血腥的讲解比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号,脉冲),于是你的脸上会渐渐地(贱
转载
300阅读
0评论
0点赞
发布博客于 4 年前

目标检测之LibPaBOD(a LIBrary for PArt-Based Object Detection in C++)

LibPaBOD是由Daniel Rodríguez Molina使用C++实现的DPM(P. Felzenszwalb的Discriminatively Trained Part Based Models)。代码基于opencv和MatIO实现,前者用于处理图像,后者用于读取.mat格式的训练模型文件。1、准备工作作者提供的windows下的可执行文件存档于\li
转载
209阅读
0评论
0点赞
发布博客于 4 年前

DPM(Defomable Parts Model) 源码分析-训练

DPM(Defomable Parts Model)原理首先调用格式:example:pascal('person', 2);   % train and evaluate a 2 component person modelpascal_train.m[cpp] view plain copyfunction model
转载
289阅读
0评论
0点赞
发布博客于 4 年前

DPM(Defomable Parts Model) 源码分析-检测(二)

DPM(Defomable Parts Model)原理首先声明此版本为V3.1。因为和论文最相符。V4增加了模型数由2个增加为6个,V5提取了语义特征。源码太长纯代码应该在2K+,只选取了核心部分代码demo.m[cpp] view plain copyfunction demo()    test('000034.jpg'
转载
241阅读
0评论
0点赞
发布博客于 4 年前

DPM(Deformable Parts Model)--原理(一)

DPM(Deformable Parts Model)Reference:Object detection with discriminatively trained partbased models. IEEE Trans. PAMI, 32(9):1627–1645, 2010."Support Vector Machines for Multiple-Instance
转载
340阅读
0评论
0点赞
发布博客于 4 年前

通俗理解Bag-of-words模型入门

总括Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。(是不关顺序的)也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而独立
转载
1405阅读
0评论
0点赞
发布博客于 4 年前

.dll,.lib,.def 和 .exp文件

简要的介绍一下在微软开发工具中(VC)静态链接库和动态链接库生成过程中出现的.dll  .lib  .def 和 .exp文件类型。windows平台上可执行文件可能是一个.exe文件也可能四个.dll文件。当然也有一些比较特别的exe或者dll文件,不过他们有其他样式的后缀名比如屏保程序(.scr),ActiveX DLL 用的.ocx 还有各种驱动使用的各种扩展名。这里我们不讨论.com
转载
636阅读
0评论
1点赞
发布博客于 4 年前

WebSocket与Http关系

作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。额。。最高票答案没答到点子上,最后怎么跑到Nodejs上去了。。Websocket只是协议而已。。我一个个来回答吧一、WebSocket是HTML5出的东西(
转载
4203阅读
0评论
0点赞
发布博客于 4 年前

高并发高性能分布式框架从无到有微服务架构设计分享

微服务架构模式(Microservice Architect Pattern)。近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具
转载
7446阅读
1评论
1点赞
发布博客于 4 年前

Linux控制台(console)和图形化界面之间的切换

1.进入字符界面  为了在Linux启动时直接进入Console界面,我们可以编辑/etc/inittab文件。找到id:5: initdefault:这一行,将它改为id:3:initdefault:后重新启动系统即可。我们看到,简简单单地将5改为3,就能实现启动时进入X-Window图形操作界面或Console字符界面的转换,这是因为Linux操作系统有六种不同的运行级(run lev
转载
3624阅读
0评论
0点赞
发布博客于 4 年前

依赖注入与对象间关系

依赖注入(DI)是控制反转(IoC)的一种方式。目前,在.NET和Java领域已经有相当多基于DI思想的对象容器,如:Spring,Unity等。本文试图避免重复性地介绍DI基础知识和DI容器的使用,而是希望深一层探讨DI的本质和对象间关系,以达到合理设计避免滥用DI的目的。依赖注入 vs 创建对象有不少地方这样描述:“依赖注入改变了使用对象前先创建的传统方式,而是从外部注入依赖的对象”。
转载
412阅读
0评论
0点赞
发布博客于 4 年前

理解HTTP幂等性

基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascr
转载
157阅读
0评论
0点赞
发布博客于 4 年前

理解RESTful架构

越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必
转载
182阅读
0评论
0点赞
发布博客于 4 年前

ffmpeg编解码详细过程

注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO5. 查找对应的解码器:avcodec_find_decoder()6. 打开编解码器:avcodec_open()7.
转载
656阅读
0评论
0点赞
发布博客于 4 年前

C++读写文件时,0A转化为0D 0A

用C++写东西,需要往文件里写数据,很简单的代码,大概是这个样子:#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ ofstream fout; fout.open("d:\\test.dat");  int a = 0x7788; fout.write((char*
转载
1649阅读
1评论
0点赞
发布博客于 4 年前

RTP协议全解析(H264码流和PS流)

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305
转载
569阅读
0评论
0点赞
发布博客于 4 年前

回声消除原理 此博文包含图片

从通讯回音产生的原因看,可以分为声学回音(Acoustic Echo)和线路回音(Line Echo),相应的回声消除技术就叫声学回声消除(Acoustic Echo Cancellation,AEC)和线路回声消除(Line Echo Cancellation, LEC)。声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的(比较好理解);线路回音是由于物理电子线路的二
转载
643阅读
0评论
0点赞
发布博客于 4 年前

CUDA从入门到精通

CUDA从入门到精通(零):写在前面在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能
转载
507阅读
0评论
0点赞
发布博客于 4 年前

C++处理异常 try,catch,throw

异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢用return value或者是print error message来做,你想过这样做会导致Memory Leak,系统退出,代码重复/难读,垃圾一堆…..吗?现在的软件已经是n*365*24小时的
转载
541阅读
0评论
1点赞
发布博客于 4 年前

C++ 类型A支持强制转换类型B的写法

Class A{public:        operator B() { return 成员; }}
原创
448阅读
0评论
0点赞
发布博客于 4 年前

斗鱼大数据的玩法

我是吴瑞诚,现在负责斗鱼数据平台部,今天给大家分享一下斗鱼大数据这块的玩法。我先做个自我介绍,我是11年初华科通信硕士毕业就进入淘宝,主要做HBase相关开发,后来回武汉后在1号店转向应用架构方向。我是14年9月加入斗鱼,当时斗鱼研发是30人的规模,从0开始搭建斗鱼大数据平台,单枪匹马一个人,大概干了三个月,招不到大数据开发,哪怕只是基本了解Hadoop的都很招不到,干的很苦。所以
转载
1128阅读
0评论
1点赞
发布博客于 4 年前

汇编语言入门八:函数调用(二)

回顾上回说道,x86汇编中专门提供了两个指令call和ret,用于实现函数调用的效果。实际上函数调用就是程序跳转,只是在跳转之前,CPU会保存当前所在的位置(即返回地址),当函数返回时,又可以从调用的位置恢复。返回地址保存在一个叫做“堆栈”的地方,堆栈中可以保存很多个返回地址,同时借助于堆栈的进出逻辑,还能实现函数嵌套、递归等效果。同时前面还简单地提到了函数调用过程中的参数和返回值
转载
2395阅读
0评论
0点赞
发布博客于 4 年前

汇编语言入门七:函数调用(一)

想象想象你在计算一个非常复杂的数学题,在算到一半的时候,你需要一个数据,而这个数据需要套用一个比较复杂的公式才能算出来,怎么办?你不得不把手中的事情停下来,先去套公式、代入数值然后...最后,算出结果来了。这时候你继续开始攻克这个困难题目的剩下部分。用脑子想刚刚说的这个过程,可能有点小问题,尤其是对脑子不太好使的人来说。想象你做题目做到一半的时候,记忆力已经
转载
601阅读
0评论
3点赞
发布博客于 4 年前

汇编语言入门六:流程控制(二)

回顾前面说到在汇编语言中实现类似C语言if-else if-else这样的结构,实际上,在汇编里面,我们并不关心if了,取而代之的是两种基本的指令:比较跳转这两种指令即可组成最基本的分支程序结构,虽然跳转指令非常多,但是我们已经有套路了,怎么跳转都不怕了。当然,在编程环境中仅有分支还不够的,我们知道C语言中除了分支结构之外,还有循环这个最基本也是最常用的形式
转载
308阅读
0评论
0点赞
发布博客于 4 年前

汇编语言入门五:流程控制(一)

回顾前面说到过这样几个内容:几条简单的汇编指令寄存器内存访问对应到C语言的学习过程中,无非就是这样几个内容:超级简单的运算变量好了,到这里,我们继续接下来的话题,程序中的流程控制。文中涉及一些汇编代码,建议读者自行编程,通过动手实践来加深对程序的理解。若没有合适的环境,可参考第一篇文章的介绍来配置环境,也可以使用在线的汇编编程环境
转载
1251阅读
0评论
0点赞
发布博客于 4 年前

汇编语言入门四:打通C和汇编语言

回顾上回我们把汇编里涉及到的寄存器和内存访问相关的内容说了。先来梳理一下:寄存器是一些超级小的临时存储器,在CPU里面,存放CPU马上就要用到的数据或者刚处理完的结果要处理的数据太多,寄存器装不下了,需要更多寄存器,但是这玩意贵啊内存可以解决上述问题,但是内存相比寄存器要慢,优点是相对便宜,容量也大插曲:C语言与汇编语言的关系还有一些疑虑,先暂时解释一下
转载
560阅读
0评论
0点赞
发布博客于 4 年前

C#调用C++库,如何捕获异常

.net 40 中,c# 默认情况下只处理SEH的异常。不处理CSE的异常。若你要捕获这类的异常。你需要再对应的方法上面加上C# code?12345678910[HandleProcessCorruptedStateExceptions][S
转载
3174阅读
0评论
0点赞
发布博客于 4 年前

c# 获取当前运行程序文件,函数,行号

命名空间:System.Diagnostics得到相关信息:StackTrace st = new StackTrace(new StackFrame(true));StackFrame sf = st.GetFrame(0);Console.WriteLine(" File: {0}", sf.GetFileName());                            
转载
698阅读
0评论
0点赞
发布博客于 4 年前

汇编语言入门三:是时候上内存了

上回说到了寄存器和指令,这回说下内存访问。开始之前,先来复习一下。回顾寄存器寄存器是在CPU里面寄存器的存储空间很小寄存器存放的是CPU马上要处理的数据或者刚处理出的结果(还是热乎的)指令传送数据用的指令mov做加法用的指令add做减法用的指令sub函数调用后返回的指令ret指针和内存高能预警高能预警,后面
转载
2296阅读
0评论
0点赞
发布博客于 4 年前

汇编语言入门二:环境有了先过把瘾

汇编语言入门二:环境有了先过把瘾上回说到,咱们把环境搭好了,可以开始玩耍汇编了。寄存器是啥玩意儿?开始学C的时候,有没有一种感觉,变量?类型?我可是要改变世界的男人,怎么就成天在跟i++较劲啊?这黑框程序还只能用来算数学,跟说好的不一样呢???想必后来,见得多了,你的想法也不那么幼稚了吧。好了,接下来汇编也会给你同样一种感觉的。啥玩意儿?寄存器?寻址?说好的变量类型循环
转载
339阅读
0评论
0点赞
发布博客于 4 年前

C++类对象内存结构 .

class A{private:double a;public:A(int i) :a(i) {}virtual void print_A1(){ printf( "A::print_A1()!");}virtual void print_A2(){printf("A::print_A2()!");}};class B{priva
转载
467阅读
0评论
0点赞
发布博客于 4 年前

六步实现Rest风格的API

Rest的作者认为计算机发展到现在,最大的成就不是企业应用,而是web,是漫漫无边的互联网web世界。Web能有这么大的成就,它值得我们研究。所以Rest的作者仔细研究了Web,按照Web的世界一些关键特性,提出了我们在实现企业应用的时候应该遵循的一种风格,就是Restful。Rest风格的API可以给我们很多好处,比如:简洁,统一,性能,可扩展性等等。可惜的是,在实现Rest的时候,总有
转载
327阅读
0评论
0点赞
发布博客于 4 年前

卷积神经网络进行图像处理的工作原理

对人类来说,描述我们眼睛所看到的事物,即“视觉世界”,看起来太微不足道了,以至于我们根本没有意识到那正是我们时时刻刻在做的事情。在看到某件事物时,不管是汽车、大树,还是一个人,我们通常都不需要过多的思考就能立刻叫出名字。然而对于一台计算机来说,区分识别“人类对象”(比如:在小狗、椅子或是闹钟这些“非人类对象”中识别出奶奶这一“人类对象”)却是相当困难的。能解决这一问题可以带来非常高的收益。
转载
2038阅读
0评论
4点赞
发布博客于 4 年前

vc编译器 msvcr.dll、msvcp.dll的含义和相关错误的处理

很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的作业系统是 Windows 平台,但没有用 Microsoft Visual Studio C++(以下简称为 MSVC)软体撰写 C++
转载
299阅读
0评论
0点赞
发布博客于 4 年前

wireshark 找不到本地网卡

有时候装完WireShark,在Capture Interfaces里面却找不到网卡,抓不到包。遇到这种情况,重启进入安全模式,打开C:\WINDOWS\system32\drivers目录,看看是不是有“nvmini.sys”这个文件。把这个文件删掉,再新建一个文本文件,重命名为“nvmini.sys”并设置属性为“只读”。这个“nvmini.sys”是一个病毒文件,至于怎么影响WireShar
转载
3244阅读
0评论
0点赞
发布博客于 4 年前

C#如何以管理员身份运行程序

在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误。     比如在通过winform程序执行cmd命令时,某些情况下如果不是以管理员身份运行,则会提示命令无效。     或者通过winform程序执行Windows Service 服务时,也需要以管理员身份才能调用Service服务。
转载
613阅读
0评论
0点赞
发布博客于 4 年前

Windows中实现不依赖账户登录的开机启动程序

在Windows中很多的任务,我们希望能够在Windows 启动之后自动运行。举个例子,公司有个订饭系统,基本每天都需要登录去订饭,于是写一个脚本实现自动订饭。可是你的电脑每天要关机,当然不希望开机后还需要手动运行这个订饭脚本了。于是此时我们要将其这种脚本实现为开机自动启动脚本。 但要注意本文要讲的开机启动的程序,是在用户还没有登录的情况下实现启动的。换句话说,本文描述的开机启动的程序运行在S
转载
5020阅读
0评论
0点赞
发布博客于 4 年前

VS自带工具:dumpbin的使用

有时候我们想查看一个exe引用了哪些动态库,或者我们想看某个动态库包含哪些接口函数,这个时候可以使用dumpbin.exe工具:1.输入Dumpbin -imports calldll.exe查看它的输入信息,可以看到它加载了***.dll2.输入dumpbin –exports dlltest.dll,列出导出函数开始->所有程序->Microso
转载
525阅读
0评论
0点赞
发布博客于 4 年前

/MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题

一、MD(d)、MT(d)编译选项的区别1、编译选项的位置以VS2005为例,这样子打开:1)         打开项目的Property Pages对话框2)         点击左侧C/C++节3)         点击Code Generation节4)         右侧第六行Runtime Library项目2、各个设置选项代表的
转载
360阅读
0评论
0点赞
发布博客于 4 年前

dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

自从操作系统升级到64位以后,就要不断的需要面对32位、64位的问题。相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别。同时,对于程序的dll文件应该放到System32文件夹,还是SysWow64,大部分人做的决定是,32位程序放到System32,64位程序放到SysWow64。是不是这样呢,那么今天就由我身边发
转载
1902阅读
1评论
0点赞
发布博客于 4 年前

MSVCR100.dll和MSVCP100.dll的区别, 缺少msvcr100.dll的原因和解决方法

MSVCR100.dllThis msvcr100.dll is the Microsoft Visual C++ Redistributable dll that is needed for projects built with Visual Studio 2010. The dll letters spell this out.MS = MicrosoftV = Visu
原创
3968阅读
0评论
2点赞
发布博客于 4 年前

error LNK2026: 模块对于 SAFESEH 映像是不安全的

今天使用VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于SAFESEH 映像是不安全的"解决方法:1.打开该项目的“属性页”对话框。2.单击“链接器”文件夹。3.单击“命令行”属性页。4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。
转载
380阅读
0评论
0点赞
发布博客于 4 年前

错误:fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning

属性--配置属性-c/c++-预处理器 添加_XKEYCHECK_H
转载
1008阅读
0评论
0点赞
发布博客于 4 年前

VC++ error LNK2019: 无法解析的外部符号 __imp_XXXXX

创建Win32程序,在Debug版本下编译成功, 但是将“工程项目属性->C/C++->代码生成-> 运行库”,由"多线程调试 DLL (/MDd)”修改为“多线程 DLL (/MD) " 后,出现错误error LNK2019: 无法解析的外部符号 __imp_XXXXX原因是此时:“属性” -> “配置属性” -> “C/C++” -> “预处理器” -> “预处理定义”
转载
5490阅读
1评论
0点赞
发布博客于 4 年前

VC++ 中LoadLibrary的路径问题

已有动态库A.dll, 创建动态库B.dll和C.exe在B.dll中编写:LoadLibrary("A.dll")在C.exe中编写:LoadLibrary("B.dll")把A.dll和B.dll放到C.exe相同的目录,运行C.exe正常。把A.dll和B.dll放到文件夹DLL中,在C.exe 中改为LoadLibrary(“DLL\B.dll”),运行失败。
原创
6550阅读
0评论
1点赞
发布博客于 4 年前

cmake

最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 main.c例子二
转载
278阅读
0评论
0点赞
发布博客于 4 年前

CMake与Make

大家都知道,写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,
转载
253阅读
0评论
0点赞
发布博客于 4 年前

使用ClickOnce发布你的软件前,应该知道的一些事情(一些常见问题解决方法)

目前我的工作是用C#开发一个桌面软件,安装到分布各地的数以百计的PC上,而且软件的修改和升级在未来很长一段时间内都很频繁,所以采用了微软的ClickOnce部署技术。这是一种上手很快使用方便的技术,但是你在决定把它应用在一个真正的商业项目中之前,应该了解一些将来可能会困扰你的问题,然后再判断一下是不是应该采用它。也许自己从头写一个自动升级框架反而更适合你的情况。 1,无法有效避免非
转载
1373阅读
0评论
0点赞
发布博客于 4 年前

C#线程同步的几种方法

我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。  在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就
转载
254阅读
0评论
0点赞
发布博客于 4 年前

Linux GCC常用命令

1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Comp
转载
304阅读
0评论
0点赞
发布博客于 4 年前