Skip to content

Instantly share code, notes, and snippets.

View wen-long's full-sized avatar
☘️
wish to be lucky

wen-long

☘️
wish to be lucky
View GitHub Profile

Q:什么是Win32?

A:嘛,32自然是指32位了?不一定。

正式地说,Win32主要是指跑在Windows NT内核上的Win32子系统。现在x64的Windows上的大部分程序也是跑在这个子系统上的,system32目录也没叫成system64。 尽管32的语源的确来自于“32位”。

Q:那么为什么还有Win64? 这倒可以肯定,这里的64是指64位目标平台,因为没有上面的那种歧义。

有一点值得注意,在MSVC中,32位环境(当然是说跑的Intel 兼容CPU的PC)预定义宏_WIN32,但64位环境同时预定义了_WIN32和_WIN64。 顺便,通常64位主要指x86_64(微软称为AMD64,这个兼容x86的基础架构一开始的确是AMD先搞出来的,后来才有Intel EM64T)。

###搭建MinGW + gcc 4.9.0 + clang 3.6.0 环境

[下载][1](解压后 311MB 左右)

  1. http://www.drangon.org/mingw/ 下载 mingw-w32-bin-i686-20140425.7z 解压放在C:\MinGW32_drangon
  2. http://www.mingw.org/ 下载 MinGW 安装到C:\MinGW,先别在意 path

这里其实只是需要他自带的 msys 环境,如果已经有其他的(如 msys2),可以试试用现有的

  1. 安装[Subversion][2],我用的是[VISUALSVN][3]的Apache Subversion command line tools,解压并添加 path
  2. 安装 Python2,添加到 path

Ubuntu 12.04 下制作 OpenWRT iptables geoip 数据库文件

  1. 去[Xtables-addons][1]下载xtables-addons-x.x.tar.xz,解压并进入
  2. 依次执行
./configure
make
make install
pi:
sudo apt-get install nfs-kernel-server rpcbind nfs-common
nano /etc/exports
/                 192.168.8.0/24(rw,sync,no_subtree_check)
exportfs -av
sudo service rpcbind restart

client:
sudo /etc/init.d/nfs-kernel-server restart
  1. 慎看官网教程的[这个教程 -> Building Qt Desktop for Windows with MinGW][1],有点坑爹,避重就轻的,浪费我好多时间,正在看的最好赶紧关掉,忘掉。

  2. 需要 MinGW,貌似需要 Python 和 Perl,我之前就有,所以不知道到底用到没

  3. 去 [Qt官网][2] 下载 [qt-everywhere-opensource-src-4.8.6.zip][3],带文件夹解压到C:\Qt,并在该位置打开 cmd

  4. 修改C:\Qt\Qt_everywhere-src_4.8.6\mkspecs\win32-g++\qmake.conf的 line 63 QMAKE_LFLAGS = -> QMAKE_LFLAGS = -static line 70 QMAKE_LFLAGS_DLL = -shared -> QMAKE_LFLAGS_DLL = -static >为的是避免出现缺失 libstdc++-6.dll 等的情况

在树莓派上运行

#sudo apt-get install nfs-kernel-server portmap nfs-common
#sudo vi /etc/exports
 /                 192.168.8.0/24(rw,sync,no_subtree_check,no_root_squash)
#sudo service rpcbind restart
#sudo /etc/init.d/nfs-kernel-server restart

修改 /etc/exports 文件后可以

// Sample pdnsd configuration file. Must be customized to obtain a working pdnsd setup!
// Read the pdnsd.conf(5) manpage for an explanation of the options.
// Add or remove '#' in front of options you want to disable or enable, respectively.
// Remove '/*' and '*/' to enable complete sections.
global {
perm_cache=2048;
cache_dir="/var/pdnsd";
run_as="pdnsd";
server_ip = 0.0.0.0; # Use eth0 here if you want to allow other
@wen-long
wen-long / Qt 中文乱码解决方法(MinGW).md
Created August 23, 2014 06:04
Qt 中文乱码解决方法(MinGW).md

源码使用 UTF-8 保存

  1. 局部使用
label.setText(QString::fromUtf8("你好"));
  1. 全局使用
#include <windows.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime;
LARGE_INTEGER nEndTime;
double time;

电视的场或帧频一般都是与当地电网频率相同的,在电源频率为60Hz的美国播出黑白电视时其场频也是60Hz,与电网频率相同。当电视还是黑白的时候,场频确实是整数的。 但开始NTSC彩色电视广播后其场频改为59.94Hz,降低了千分之一。改变场频的原因是NTSC的彩色副载波频率采用了1/2行频间置,为了避免彩色副载波与亮度信号和音频载波之间的相互干扰,各种频率之间必须满足下述关系:

  • 彩色副载波是二分之一行频的整倍数(1/2行频间置)
  • 音频载波是行频的整倍数

为满足NTSC彩色信号与原黑白电视信号的兼容性要求,音频载波频率4.5 MHz不能更改,因此

  • 行频取 4.5MHz / 286 = 15,734 Hz(与黑白电视的15,750 Hz相近)
  • 帧频取 15734 / 525 = 29.97 Hz(与黑白电视的30 Hz相近)