普通视图

发现新文章,点击刷新页面。
昨天以前老鱼的博客

DOS 内存粗解

2022年10月18日 15:32

今天搞明白了,为啥 dos 有个 A20 地址线,以及 DOS 所谓高位内存的技术了。原因出在那个段地址的计算上面,经常看到的段的计算方式,实际上不止可以访问到 1M 的内存,而是 1M 再多一些:

0xffff * 16 + 0xffff

可以访问到比 1M 高一点的 64k 内存。实际上不是 64k,而是 64k-16 字节。因为 ffff:0010 就是 1M

比较早的 DOS 程序,会利用 8086 的 bug,访问这段内存实际上是访问 0000:0000 这一段内存。后来 80286 出现,这个 bug 就失效了。

由此引申出 DOS 内存的几个概念。

在 openSUSE 底下跨平台编译 mingw64 程序

2022年3月8日 13:01

在 openSUSE Leap 15.3 底下跨平台编译 mingw64 程序,只要安装跨平台编译的安装包就行了:

sudo zypper in mingw64-cross-gcc-c++

接下来我们就来操作一下:

// main.c
#include <stdio.h>
void main() { printf("hello, world!\n"); }

然后运行:

$ x86_64-w64-mingw32-gcc -o test003.exe main.c
$ wine ./test003.exe

可以看到打印出结果。

静态编译 Qt 简单教程

2018年3月8日 03:07

跟我打交道过的人都知道我一直在唱衰桌面端 Qt,但是又一直在推荐大家使用 Qt 作为服务端开发的标准库。服务端开发除了完成功能之外,还需要考虑到服务端运维。一般希望布署的程序越简单越好,只好不依赖于特定的系统,一个文件复制到服务端就搞定。这时候静态编译就用上了。

简而言之,静态编译 Qt 不过是使用特殊的参数配置 Qt 而已:

./configure -release -opensource -static -no-gui -no-icu -no-glib -no-iconv -nomake examples

更详细的步骤请看原文吧。

❌
❌