Visual Studio 打包源文件为可执行.exe程序(带有Qt Tool和第三方库)

写在前面 :
寻找这个打包方法的起因是我用Qt写一个大作业,为了能把程序打包好,从ChatGPT和网上找了不少的内容, 花了差不多一天的时间才打包完成 , 下面的是打包过程中顺便用Obsidian记的一些

打包完成后,你可以将程序发到你同学的电脑上, 这样在他们的电脑上即可执行你写的程序。

我使用的Visual Studio是Visual Studio 2019以及对应下载的QT VS Tools 的扩展连接Qt 进行桌面应用程序(Qt Widgets Application) 进行开发的,另外在项目中,也引用了第三方库(Eigen, Boost, CGAL), 所以打包起来会比较麻烦。

另外也说明一下,我也看过使用Visual Studio Installer打包Visual Studio程序为exe文件, 不过因为我的第三方库比较多,并且有Qt依赖, 所以就没有用直接加入源文件的方法。

具体来说其实是直接使用Visual Studio里面的Release的功能进行打包的。


首先说明一下, Qt 6.5.0 中, 安装打包程序会发生错误, 我到网上查了一下,这个是6.5.0版本的内部原因, 如果您使用的是6.5.0版本, 请卸载后重装6.5.1版本进行打包程序


打包步骤

要将Visual Studio 2019中的带有Qt扩展的项目打包为可执行文件.exe文件,需要遵循以下步骤:

  1. 在Visual Studio中,在解决方案资源管理器中,右键单击项目,然后选择“属性”。在“配置”下拉菜单中,选择“Release”。
    在这里插入图片描述

  2. 确保项目已正确配置,包括附加的包含路径和库。在项目属性中,转到“C/C++”->“General”,并检查“附加包含目录”是否包含了Qt头文件和第三方库的路径。然后转到“Linker”->“General”,检查“附加库目录”是否包含了Qt库和第三方库的路径(需要包含你使用的第三方库的include和lib路径,并且程序能够正常运行。如果是用NuGet配置的库,则跳过) (这个步骤如果你的程序能正常运行并且没有绝对路径包含项,那么一般来说你已经做好了)

  3. 使用windeployqt将Project的属性中的Qt Project Settings 里面的 Run Deployment 选成Yes (默认是No) 即可(下面图里面的Run Deployment Tool选项要改成Yes)

  • 注: 为了保证windeployqt正常运行,需要将 E:\Qt\6.5.1\msvc2019_64\bin 添加到系统环境变量Path中, 对应的windeployqt 工具才有效

另外加上如何测试项目的windeployqt是否成功: 先Build一下解决方案,然后在项目的 x64/Debug 或者Release文件夹下面(如果没有按照4更改, 就是Debug文件夹)你会找到.exe文件, 此时, 在对应的文件夹里面

windeployqt FriskFEM.exe     // FriskFEM换成你的可执行文件exe

如果没有报什么错,说明基本没问题了,如果是没有找到windeployqt, 请按照上述说明先配置路径,如果是异常终止了, 那么你的Qt可能是6.5.0版本,请卸载重装6.5.1版本进行打包。

  1. 然后右击解决方案, 在配置框中选择Configuration Properties, 然后打开右上角的 Configuration Properties, 此时你的Configuration Manager可能还是Debug, 此时请确保将你的程序设置为Release (都要求是Release), 如下图所示
    在这里插入图片描述
    另外需要说明的是,如果你是卸载重装Qt之后,项目整体配置转换成Release之后可能会发现项目找不到Qt的问题,请在Project -> Properties -> Qt Install ation 重新选取你需要的Qt版本。
    在这里插入图片描述
  2. 选择项目的输出目录:
    在项目配置(Project-> Properties) ->Qt Deploy Tool -> Debug/Release Binaries 中,将对应的选项更改为Release
    在这里插入图片描述
  3. 再次构建项目。在解决方案资源管理器中,右键单击项目,然后选择“Build Solution”。
    在这里插入图片描述
    然后你就会在项目(一般是和.sln文件相同路径下)的 x64文件夹中,会出现Release路径
    在这里插入图片描述
    打开Release文件夹,项目如图所示:
    在这里插入图片描述
    注意里面的部分是Qt6Gui和Qt6Widgets.dll等等,如果是Qt6Guid, 那么是上面一步的Debug/Release Binaries 没有设置好

接下来就打包成功了,此时你就可以直接将Release 文件夹压缩之后发给其他人,程序就可以在他人的电脑上运行了。


虽然这一期也依旧挺水的(加上此时也是考试周), 实际上为了程勋能够正常运行,作者在包括室友和其他同学的电脑上测试过七八次才成功运行的,程序调试不易, 如果这个文章对你有帮助, 还是希望能给这篇文章点个赞再走吧!

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序菜鸟一只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值