c++ 如何在Qt Creator中创建.exe文件

jbose2ul  于 11个月前  发布在  其他
关注(0)|答案(6)|浏览(182)

我正在Qt Creator编译器上做一个简单的文本编辑器。我做了,但现在想为该项目创建一个.exe文件,但我不知道如何在Qt Creator编译器中创建一个.exe文件。有人能帮忙吗?

wd2eg0qa

wd2eg0qa1#

有一个工具可以在Windows上自动添加. dll。
在命令提示符下导航到qt bin目录。它应该看起来像这样:.\Qt\5.9.1\msvc2017_64\bin\(我使用的是Visual Studio)。
在命令提示符下运行windeployqt.exe,并将项目位置作为参数,如下所示:
第一个月
现在,my_project.exe将在同一目录中拥有. dll并将执行。

u1ehiz5o

u1ehiz5o2#

可执行文件是在生成应用程序时由编译器生成的。
第一个月
如果你启用了shadow build,Qt creator将把它生成的.exe文件放在这里。如果shadow build被禁用,可执行文件将存储在项目文件夹中。

cwtwac6a

cwtwac6a3#

From:How to create executable file for a Qt Application?基本上你必须在Qt树的深处寻找MinGW子文件夹,Qt实用程序驻留在那里,并复制所需的dll。
这些是我遵循的步骤,基于Qt 4.7.4,用正确的共享库打包应用程序。
假设你已经在c:\qtsdk下安装了Qt。打开你的项目,在发布模式下编译它。转到这个目录:C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin --它包含所有共享库。这些库以“d”结尾-- frex,QtCore.dll是发布版本,而QtCoreD.dll是调试版本。至少将这些文件复制到你的发布目录(你的.exe所在的目录):

  • mingwm10.dll
  • libgcc_s_dw2-1.dll
  • QtCore4.dll
  • QtGui4.dll

我只是以这种方式构建、测试和部署了一个虚拟项目。

cnjp1d6j

cnjp1d6j4#

我也遇到了同样的问题,所以我使用了上面建议的答案:“有一个工具可以在Windows上自动添加. dll。
在命令提示符下导航到qt bin目录。它应该看起来像这样:.\Qt\5.9.1\msvc2017_64\bin\(我使用的是Visual Studio)。
在命令提示符下运行windeployqt.exe,并将项目位置作为参数,如下所示:
windeployqt.exe C:\project_folder\my_project.exe
现在my_project.exe将在同一个目录中有. dll文件,并将执行。“但我做了一些事情,这可能会有所帮助:
在你的项目的调试文件中已经有你的应用的可执行版本,如果你找不到它,试着在Qt creator中输入属性,跟踪文件。当你在属性中时,你还可以看到你的应用是否像前面的答案一样使用msvc2017_64或其他编译器。
将该文件带到您在命令行中写入的相同路径:windeployqt.exe C:\project_folder\my_project.exe。
当您尝试打开可执行文件时,它将需要一些您可以在此路径中找到的dll文件。\Qt\5.9.1\msvc2017_64\bin复制并粘贴到exe文件的位置

lokaqttq

lokaqttq5#

从qt项目创建exe文件的步骤
1.在Build Settings中,确保Edit build configurationRelease
1.在Build Settings中取消选中Shadow build(这将确保发布文件夹位于项目目录内,而不是项目目录外)。
1.构建并运行您的项目(这将在您的项目文件夹中创建一个release目录)。
1.将 *.dll和 *.exe文件从C:\Qt\6.3.2\mingw_64\bin复制到release文件夹(您的项目exe文件所在的位置)。
1.将C:\Qt\6.3.2\mingw_64\plugins中的所有文件夹复制到release文件夹。
1.现在您可以启动与项目对应的发布文件夹中的exe文件。


的数据

0g0grzrc

0g0grzrc6#

您可以直接在Qt Creator中配置Deploy,以便在运行时自动部署。
为此,您必须转到项目,并在部署菜单中添加一个自定义进程步骤,并将您正在使用的编译器的/bin文件夹中的应用程序windeployqt.exe和release文件夹中的.exe文件的路径作为应用程序。
然后,您只需右键单击项目并部署,所有. dll将自动与.exe一起复制
这种方法的缺点是您需要手动复制release文件夹并重命名为deployed.exe
我试图用一个批处理脚本来自动化这个过程,这个脚本从Qt Creator外部调用windeploqt并自动创建一个文件夹,但它的行为不一样,它不复制从Qt Creator运行时相同的dll,我不知道为什么。

@echo off

REM Deploy the Qt project
C:\Qt\5.15.2\mingw81_32\bin\windeployqt.exe --quick C:\GitHub\APP\release\APP.exe --dir windeployqt

REM Get the current commit ID
for /f "tokens=1" %%i in ('git rev-parse --short HEAD') do set commit_id=%%i

REM Create the deploy folder name
set deploy_folder=deploy_%commit_id%

REM Create the deploy folder
mkdir %deploy_folder%

REM Copy the contents of the windeployqt folder to the deploy folder
xcopy /E /Y windeployqt %deploy_folder%

REM Rename the deploy folder
ren %deploy_folder% %deploy_folder:~0,-1%

REM Remove the windeployqt folder
rmdir /S /Q windeployqt

字符串

相关问题