2019-08-16 06:56
⁄ 工业·编程
⁄ 共 3215字
一、名字含义:
在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思, 所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。
二、ucLinux与linux区别?
没有虚存管理
不能运行时增加进程栈
不支持分页
可执行程序不是elf, 而是flat
不能用fork, 而是用vfork
RAMDISK
uClinux是针对控制领域的嵌入式linux操作系统,它从...
linux, uclinux, 区别阅读全文
2019-08-15 06:55
⁄ 工业·编程
⁄ 共 6443字
上一篇文章中我们初步认识了CMake中的一些概念:target(目标)、command(命令)等等。这篇文章我们来学习一下CMake的原理,并详细阐述这些概念。
1 CMake的结构
CMake有三个关键概念:target、generator和command,其中target和command我们已经有所了解了。在CMake中,这些东西本质上都是C++的类。理解这些概念对于编写出高效的CMake构建脚本很有帮助。
在更进一步了解CMake这些概念之前,有必要先了解一...
CMake阅读全文
2019-08-14 06:51
⁄ 工业·编程
⁄ 共 2091字
平时开发中我们已经习惯了让IDE为我们做好一切,大部分情况下基本上不需要手动去编写项目的make文件,但是在规模较大的项目中,make其实非常重要,甚至可以说会不会make决定了你是否真的了解项目的整体架构并驾驭它。因为自己在Android开发中发现项目中的NDK部分已经抛弃了传统的Android.mk,与时俱进用上了CMake,因此打算静下心来好好学习学习,本文开始对学习CMake的过程做个笔记,以加深印象。参考书籍是《mastering...
CMake阅读全文
2019-08-13 05:45
⁄ 工业·编程
⁄ 共 15416字
什么是 CMake
All problems in computer science can be solved by another level of indirection.
David Wheeler
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为...
CMake阅读全文
2019-08-12 07:50
⁄ 工业·编程
⁄ 共 479字
针对GitHub上的几个几个C++ Restful库做了一个系统的对比:
Restful库
98%请求中的最大时间(越小越好)
每秒平均处理的请求数(越大越好)
Sample代码的行数
C++ : cpprestsdk / default JSON implementation
51
30.70
48
C++ : cpprestsdk / RapidJSON
44
47.06
47
C++ : restbed
7
224.18
39
C++ : pistache
6
319.99
40
PHP : Native implementation
10
146.95
14
表格中第二列和第三列是性能指标,第四...
REST, 开源, 框架阅读全文
2019-08-11 06:38
⁄ 工业·编程
⁄ 共 1116字
因为Go的语法和Erlang、Python类似,所以我们将这三门语言做个详细的对比。
相比于Python的40个特性,Go只有31个,可以说Go在语言设计上是相当克制的。比如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。
但是Go的特点也很鲜明,比如,它拥有协程、自动垃圾回收、包管理系统、一等公民的函数、栈空间管理等。
Go...
Go, Python阅读全文
2019-08-10 06:55
⁄ 工业·编程
⁄ 共 3165字
所谓通讯协议就是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,倘若一方不遵守,便会直接导致数据不能被解析!更通俗来讲,它可以理解两个节点之间为了协同工作实现信息交换,协商一定的规则和约定,例如规定字节序,各个字段类型等。我们最常见到的可能是TCP(传输控制协议...
TLV, 网络协议阅读全文
2019-08-09 21:58
⁄ 工业·编程
⁄ 共 3241字
1. 函数介绍
说到memcpy()和memmove()这两个函数,可能大家从名称上认为二者是两个不同的函数。其实不然,事实上,这两个函数功能是类似的,都是对内存进行拷贝(千万不要被memmove()函数中的move给欺骗了,不要想当然的认为它就是移动),二者的区别仅仅是对于内存重叠这一现象的处理。 如果要拷贝的两个内存空间不重叠的话,那么使用memcpy(...
c++阅读全文
2019-08-08 06:51
⁄ 工业·编程
⁄ 共 443字
大家都知道,写程序大体步骤为:
1.用编辑器编写源代码,如.c文件。
2.用编译器编译代码生成目标文件,如.o。
3.用链接器连接目标代码生成可执行文件,如.exe。
但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这...
CMake阅读全文
2019-08-07 06:41
⁄ 工业·编程
⁄ 共 2282字
C/C++程序员肯定离不开Makefile和Cmake,因为如果对这两个工具不熟悉,那么你就不是一个合格的C/C++程序员。本文对Makefile和Cmake,及它们的使用进行了详细的介绍。
一、Makefile详解
Makefile描述了整个工程的编译、连接等规则,makefile定义了一些列规则来指定,哪些文件需要编译以及如何编译、需要创建哪些库文件以及如 何创建这些库文件、如何产生我们想要的可执行文件。使用Makefile,整个工程都可以...
CMake, Makefile, 区别阅读全文