xmake的工程描述文件,摈弃了makefile的繁琐复杂,借鉴了premake的简洁明了,原生支持lua脚本,使得更加的灵活、方便扩展。
工程默认描述文件名为xmake.lua,支持多级目录嵌套,也可以通过以下命令,指定其他文件作为工程描述文件:
bash
xmake -f /tmp/xxx.lua
xmake --file=xxx.lua
下面先来看一个最简单的例子:
```lua
-- 添加一个名为demo的目标到工程
target("demo")
-- 设置目标程序类型为二进制可执行程序,一般为console的终端命令行程序
set_kind("binary")
继续阅读 »
[CDATA[<p class="text"
在coursera上有个csapp有关的公开课 The Hardware/Software Interface
上面的lib2和csapp上的二进制炸弹实验一样,但是是64位的=.=,于是我还是去 http://csapp.cs.cmu.edu/public/labs.html上下载了一个32位的文件来练习.
下面是第一关的反汇编
Dump of assembler code for function phase_1:
0x08048b20 <+0>: push %ebp
继续阅读 »
在阅读《解析深度学习:语音识别实践》时,也会参考一些博客,看到好的也会整理一下分享出来。本文主要通过浅显的语言来展示语音识别的基本过程和原理。本文大部分内容转载至:语音识别的技术原理是什么?。
语音识别技术,也被称为自动语音识别AutomaTIc Speech RecogniTIon(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。下面我们来详细解读语音识别技术原理。
首先,我们知道声音实际上是一种波。常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows P
继续阅读 »
虽然go1.5支持共享库,但是由于golang并不能像C语言一样通过export,头文件与.C文件分离,所以并不能实现与C语言一样,只提供头文件与共享库而不提供实现的方法。
go1.7引入了binary-package, 实现了以上C语言的功能,提供二进制包。
继续阅读 »
数据的传输和获取,通常会涉及到数据的压缩和解压等操作
more
如果现在有这么个需求
1、从服务器下载的图片,根据图片的二进制数据流决定图片的格式,你会怎么办? (数据截取)
2、需要将用户每天24小时的生活状态传到服务器,然后可以按年/月/周/天取出并统计、展示等,你会怎么办?(字节数组)
对于上面的问题,我们就必须考虑数据结构,并实现压缩和解压等操作
下面给予一个简单的示例,希望有所启示
```objc
//打包
int tmpSize = 10;
Byte *tmpBuffer = malloc(sizeof(Byte)*tmpSize);
for (int i = 0;i
继续阅读 »
Apache Thrift
Thrift 是一种接口描述语言,通过二进制通信协议为多种编程语言定义和创建服务。Thrift是一种可扩展的跨语言服务的RPC框架,由Facebook开发并且开源。
继续阅读 »
新特性
为解释器作用域增加一些内建模块支持
针对windows x64平台,支持ml64汇编器
改进
增强ipairs和pairs接口,支持过滤器模式,简化脚本代码
为vs201x工程生成增加文件filter
移除core/tools目录以及msys工具链,在windows上使用xmake自编译core源码进行安装,优化xmake源码磁盘空间
移除xmake/packages,默认模板安装不再内置二进制packages,暂时需要手动放置,以后再做成自动包依赖下载编译
Bugs修复
修复msvc的编译选项不支持问题:-def:xxx.def
修复ml.exe汇编器脚本
修复选项链接顺序问题
继续阅读 »
此版本主要修复一些稳定性问题。
更多使用说明,请阅读:文档手册。
项目源码:Github, Gitee.
改进
改进add_files,支持对files粒度进行编译选项的各种配置,更加灵活。
从依赖的target和option中继承links和linkdirs。
改进target.add_deps接口,添加继承配置,允许手动禁止依赖继承,例如:add_deps("test", {inherit = false})
移除tbox.pkg二进制依赖,直接集成tbox源码进行编译
Bugs修复
修复目标级联依赖问题
修复target:add和option:add问题
修复在archlinux上的编译和安装问题
修复/ZI的兼容性
继续阅读 »
IP地址
地址的分类
IP(Internet Protocol国际互联网协议)的长度为32为(bit),分为4段,常用十进制数字表示,每段数字的范围是1~254,一个4字节的IP地址划分为两个部分用于标明网络端和标明具体的节点,分别对应两个ID(标识码):网络ID和主机ID,同一物理网络上的主机用相同的网络ID。
more
五类IP地址
A类
A类IP地址有1个字节的网络地址和3个字节的主机地址组成,网络地址的最高位(二进制)必须为"0"(第一段数字的范围[1-126]),地址的范围从1.0.0.1~126.255.255.254可用的A类网络有126个,每个网络可容纳16777214个主机
计算:
网段:首位为0
继续阅读 »
本文的前身是一篇笔记,比较零碎,发布出来是为了让后续的文章可以有一个基本的参考,本文会持续更新。
NDK 的高性能最常见的场景:多媒体,游戏。此外,利用 NDK 还能练习 C/C++,一举两得。
基本概念
shared library, .so
static library, .a
JNI: Java Native Interface
Application Binary Interface, ABI:我们将符号修饰标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为程序的 ABI(摘自《程序员的自我修养》);
Application Programming Interface, API:API 是源码层面
继续阅读 »