将动态编译生成的exe及其依赖的dll打包方法

步骤如下:
1、 先动态编译连链接,生成exe;
2、 找到exe依赖的dll文件
使用Process Explore来获取所依赖的dll文件
打开procexp.exe,通过菜单View–Lower Pane View–DLLs勾选,显示dll窗口,
在编译环境下运行程序,找到相应的进程,查看需要的dll文件,如图所示,其中系统dll可以忽略,把需要的dll和exe copy到一个新的目录下;
3、 打包
打包工具使用Enigma Virtual Box,
Enter Input File Name中,选择exe
Enter Output File Name,输出文件名称
点Add按钮,添加准备好的dll文件
点Files Options,勾选Enable Files Virtualization和Compress files,OK
最后,点Process,完成,exe自此可独立运行。
如图所示

在 C++ 中,要将 EXEDLL动态链接库)依赖打包成一个可执行文件,通常使用工具如 Visual Studio 的资源编辑器 (Resource Editor) 或第三方工具(如 NSIS、Inno Setup 或 CMake 的自定义构建脚本)。以下是一般的步骤: 1. **Visual Studio**: - 使用 Visual Studio 创建项目时,确保所有必要的 DLL 已经添加到项目的“References”或“Additional Dependencies”列表中。 - 在项目设置中,勾选 "Embed Managed Assemblies in the Output Assembly" 或 "Copy Local" 选项,以便包含 .NET Framework DLLs。 - 如果有非托管库(例如 C++ DLL),右键点击项目 -> Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies,列出所有依赖的静态库 (.lib) 或动态库 (.dll)。 - 生成最终的可执行文件时,选择 Release 配置并启用 "Create Library for Deployment"。 2. **资源编辑器 (Resource Compiler)**: - 使用 rc.exe 命令行工具(Windows Resource Compiler),将 DLL 文件添加到应用程序的资源中。例如: ``` rc /embed MyDll.dll myresource.rc ``` - 这样做的前提是 DLL 是兼容 Windows Resource 格式的。 3. **NSIS 编程语言**: - 使用 NSIS 框架编写安装脚本,该脚本会在安装过程中复制 DLL 到正确的位置,并确保它们与 EXE 可以正确地找到彼此。 4. **CMake**: - 在 CMakeLists.txt 文件中,你可以使用 `install(TARGETS ...)` 命令指定哪些文件需要安装,包括 DLLs。同时,你可以用 `find_package` 寻找其他库,确保它们一起被编译。 5. **静态链接**: - 如果你不想让用户安装额外的 DLL,可以选择将依赖DLL 动态链接转换为静态链接,但这可能会增大可执行文件的大小。 记得在打包完成后,测试你的程序确保所有依赖都能正确加载并在运行时正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值