在使用MSYS2(包括mingw)与Cygwin 上开发Windows程序,经常遇到需要打包exe所需dll问题(如动态加载的dll)。
本库主要实现自动将依赖的dll拷贝到目标exe目录:
- 通过C++静态全局变量的构造函数启动拷贝线程。
- 通过环境变量触发dll拷贝功能。
可不修改原有C++代码,直接将本库链接进工程即可实现dll拷贝功能。
支持的环境变量:
环境变量名称 | 说明 |
---|---|
DEPLOYWIN | 为1时启动dll拷贝,为其它值跳过dll拷贝 |
DEPLOYWIN_AUTOEXIT | 当为大于0的数字时,表示自动退出的秒数。正常运行时不可设置此环境变量。通常用于CMake脚本的安装操作。 |
- 操作系统:Windows 7及以上
本工程主要支持CMake构建的工程,其它类型项目请直接添加src下(不包括子目录)的cpp文件。
代码示例请参考test目录,由doxygen生成的说明参考DeployWin.chm。
PowerShell通过env:操作环境变量:
#启用dll拷贝
$env:DEPLOYWIN=1
#关闭dll拷贝
$env:DEPLOYWIN=0
cmd中通过set命令设置环境变量:
REM 启用dll拷贝
set DEPLOYWIN=1
REM 关闭dll拷贝
set DEPLOYWIN=1
unix-like包括msys2与cygwin,通过export导出环境变量:
#启用dll拷贝
export DEPLOYWIN=1
# 关闭dll拷贝
export DEPLOYWIN=0
未启用dll拷贝:
启用dll拷贝: