Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个文件中C++ QT应用程序的编译_C++_Qt_Desktop Application - Fatal编程技术网

一个文件中C++ QT应用程序的编译

一个文件中C++ QT应用程序的编译,c++,qt,desktop-application,C++,Qt,Desktop Application,我已经使用qt编写了windows gui应用程序,我想部署它。现在,当我将.exe放入其他PC时,它显示错误,说明需要qt5core.dll等。我可以安装此dll,但是,有没有可能在没有qt的dll的情况下运行带有qt的exe应用程序作为一个文件?例如,我可以将.exe交给我的朋友,他可以在不安装.dll的情况下立即运行它?在部署可执行文件时,您始终需要包含您使用的库,包括编译器的运行库,否则您的应用程序将如何运行能够使用这些库中的代码吗?您可能能够静态链接某些/大部分内容,但很少链接所有内容

我已经使用qt编写了windows gui应用程序,我想部署它。现在,当我将.exe放入其他PC时,它显示错误,说明需要qt5core.dll等。我可以安装此dll,但是,有没有可能在没有qt的dll的情况下运行带有qt的exe应用程序作为一个文件?例如,我可以将.exe交给我的朋友,他可以在不安装.dll的情况下立即运行它?

在部署可执行文件时,您始终需要包含您使用的库,包括编译器的运行库,否则您的应用程序将如何运行能够使用这些库中的代码吗?您可能能够静态链接某些/大部分内容,但很少链接所有内容。研究如何为应用程序创建安装程序/程序包,以便将所有内容打包为一个方便的文件。

在部署可执行文件时,始终需要包含所使用的库,包括编译器运行库,否则应用程序将如何使用这些库中的代码?您可能能够静态链接某些/大部分内容,但很少链接所有内容。研究如何为您的应用程序创建安装程序/软件包,以便将所有内容打包为一个方便的文件。

基本上,如果您想要一个exe文件,您可能需要静态链接

合法的商业版本使之成为可能,或者如果我没有错的话,您将不得不构建一个静态的qt版本。
在后一种情况下,您必须提供应用程序的源代码。

基本上,如果您想要一个exe文件,您可能指的是静态链接

合法的商业版本使之成为可能,或者如果我没有错的话,您将不得不构建一个静态的qt版本。
在后一种情况下,您必须提供应用程序的源代码。

我有时会这样做,但您必须小心许可证要求:如果您使用GPL,应该可以,如果您选择LGPL,可能会有点困难。不知道商业版

您必须做的是静态地构建Qt,然后使用该Qt构建来构建您的应用程序。我在这方面有很好的经验。MXE构建了一个完整的交叉构建环境,并允许您静态构建大型Qt exe。我在Mac OS和Linux上使用它为Windows构建静态可执行文件,但您可能可以在WSL上运行它。编译起来需要一点时间,但使用起来很简单。请注意,如果您的应用程序需要QtWebEngine,则无法使用它,因为它不会使用mingw构建


另一个更简单的选择是创建安装程序。该方法使用简单。如果包含VS运行时,则最终只需一个exe来分发安装程序。

我有时会这样做,但您必须小心许可证要求:如果使用GPL,应该可以,如果选择LGPL,可能会有点困难。不知道商业版

您必须做的是静态地构建Qt,然后使用该Qt构建来构建您的应用程序。我在这方面有很好的经验。MXE构建了一个完整的交叉构建环境,并允许您静态构建大型Qt exe。我在Mac OS和Linux上使用它为Windows构建静态可执行文件,但您可能可以在WSL上运行它。编译起来需要一点时间,但使用起来很简单。请注意,如果您的应用程序需要QtWebEngine,则无法使用它,因为它不会使用mingw构建


另一个更简单的选择是创建安装程序。该方法使用简单。如果包含VS运行时,则最终只需一个exe来分发安装程序。

您可以使用QT-Static生成一个大的.exe文件,而无外部依赖项

如果您使用的是LGPL Qt,则必须阅读以下内容:

Yo可以使用Qt和静态链接,但应用程序的用户必须能够根据Qt库的不同或修改版本重新链接应用程序

您可以使用这样的应用程序模板,这对LGPL Qt非常有用:


您可以使用QT Static创建一个大的.exe文件,无外部依赖项

如果您使用的是LGPL Qt,则必须阅读以下内容:

Yo可以使用Qt和静态链接,但应用程序的用户必须能够根据Qt库的不同或修改版本重新链接应用程序

您可以使用这样的应用程序模板,这对LGPL Qt非常有用:


您必须将可执行文件与可能需要自己构建的静态QT库相链接。我不确定QT是否支持这样的路径。我的建议是创建一个安装程序包,将与应用程序一起使用的任何编译器所需的DLL和运行时安装到标准c:\Program文件中。您必须将可执行文件链接到您可能需要自己构建的静态QT库中。我不确定QT是否支持这样的路径。我的建议是创建一个安装程序包,将您与应用程序一起使用的任何编译器所需的DLL和运行时安装到标准c:\P中
程序文件相关不确定是否有最近的链接:相关不确定是否有最近的链接: