用VC和MinGW导出dll的def和lib(a)文件

有了dll文件需要导出def文件:
In msys2:
pacman -S mingw-w64-x86_64-tools
or x86:
pacman -S mingw-w64-i686-tools
gendef zlib1.dll
In MinGW:
pexports zlib1.dll > zlib1.def

有了dll和def文件,需要导出MinGW的.a文件:
dlltool --dllname zlib1.dll --def zlib1.def --output-lib libz.dll.a

有了dll和def文件,需要导出一个VC的lib文件:
运行VS开发人员命令提示符
lib /machine:X64 /def:zlib1.def
or x86:
lib /machine:i386 /def:zlib1.def

注意:
C++的dll不具有2进制级别的共享性,也就是说VC的MinGW的C++ dll不能混用。
而C的可以。
pexports和dlltool的MinGW的工具,lib是VC的工具。

树莓派更换中国大陆地区软件源(stretch)

查看自己的版本类型:
lsb_release -a

sudo nano /etc/apt/sources.list
将文件里的默认的官方软件源用# 注释掉
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

sudo nano /etc/apt/sources.list.d/raspi.list
将文件里的默认的官方软件源用# 注释掉
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi stretch main ui

sudo apt-get update
sudo apt-get upgrade

kworker CPU占用率高解决方法

grep . -r /sys/firmware/acpi/interrupts/

检查最高值,例如:
/sys/firmware/acpi/interrupts/gpe13: 1659333 STS enabled unmasked

sudo mkdir /acpi_interrupts_backups
sudo cp /sys/firmware/acpi/interrupts/gpe13 /acpi_interrupts_backups
sudo crontab -e
Add:

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe13

从暂停唤醒后也使其工作:
sudo touch /etc/pm/sleep.d/30_disable_gpe13
sudo chmod +x /etc/pm/sleep.d/30_disable_gpe13
sudo nano /etc/pm/sleep.d/30_disable_gpe13
Add:

#!/bin/bash
case "$1" in
    thaw|resume)
        echo disable > /sys/firmware/acpi/interrupts/gpe13 2>/dev/null
        ;;
    *)
        ;;
esac
exit $?