2023-04-28 15:38:27 +08:00
2023-02-27 16:26:19 +08:00
2023-03-03 12:58:35 +08:00
2023-02-24 13:34:07 +08:00
2023-02-27 17:41:08 +08:00
2023-02-27 17:41:08 +08:00
2023-02-24 12:16:01 +08:00
2023-04-28 15:38:27 +08:00

说明

在使用MSYS2包括mingwCygwin 上开发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

环境变量设置

Windows Power shell

PowerShell通过env:操作环境变量:

#启用dll拷贝
$env:DEPLOYWIN=1
#关闭dll拷贝
$env:DEPLOYWIN=0

cmd

cmd中通过set命令设置环境变量:

REM 启用dll拷贝
set DEPLOYWIN=1
REM 关闭dll拷贝
set DEPLOYWIN=1

unix-like

unix-like包括msys2与cygwin,通过export导出环境变量:

#启用dll拷贝
export DEPLOYWIN=1
# 关闭dll拷贝
export DEPLOYWIN=0

测试程序截图

MSYS2 MINGW32

未启用dll拷贝

mingw32-no-deploywin

启用dll拷贝:

mingw32-deploywin-1

mingw32-deploywin-2

mingw32-deploywin-3

Description
No description provided
Readme MIT 526 KiB
Languages
C++ 74.1%
CMake 23.9%
C 2%