Visual Studio 2022之Release版本程序发送到其它计算机运行

目录

1、缺少dll​

2、应用程序无法正常启动

3、This application failed to start because no Qt platform plugin could be initialized.


代码在Debug模式下正常运行,然后切换到Release模式下,也正常运行,把第三方平台的dll拷贝到exe所在的目录下,再发送到另一台计算机(未安装Visual Studio与QT),遇到如下问题:

1、缺少dll

如果缺少 DLL 文件,这通常是因为程序依赖的某些动态链接库(DLLs)没有随程序一起被正确部署。以下是一些解决此问题的步骤:

确定缺失的 DLL:首先,需要确定哪些 DLL 文件缺失。当在其他计算机上运行程序时,它通常会报告缺少哪个 DLL。

使用依赖项检查器:使用工具如 Dependency Walker (depends.exe) 或 Process Monitor 来检查您的程序依赖哪些 DLL。这些工具可以帮助识别程序运行所需的所有 DLL。

静态链接 vs 动态链接:如果程序依赖于某些第三方库,考虑将这些库静态链接到程序中,而不是动态链接。静态链接会将库的内容直接包含在您的可执行文件中,从而避免 DLL 依赖问题。但是,请注意,静态链接可能会增加可执行文件的大小。

部署 DLL:对于动态链接的库,需要确保所有必要的 DLL 文件都与程序一起部署。这通常意味着将 DLL 文件复制到与可执行文件相同的目录中,或者将它们安装到目标计算机上的系统目录(如 C:\Windows\System32 或 C:\Windows\SysWOW64)中。

使用 Visual Studio 的部署项目:Visual Studio 提供了创建安装项目(如 MSI 安装包)的功能,这可以帮助自动部署您的应用程序及其依赖项。通过安装项目,您可以指定哪些文件应该包括在安装包中,并设置安装过程中的各种选项。

使用第三方安装程序:除了 Visual Studio 的安装项目外,还可以使用如 Inno Setup、NSIS (Nullsoft Scriptable Install System) 或 WiX Toolset 等第三方安装程序来创建安装包。这些工具通常提供了更多的灵活性和自定义选项。

确保运行时环境:如果程序使用了特定的运行时环境(如 .NET Framework、Visual C++ Redistributable 等),请确保目标计算机上也安装了这些运行时环境。

使用延迟加载和错误处理:对于某些可选的 DLL 依赖项,可以使用延迟加载技术,并在运行时检查 DLL 是否可用。如果 DLL 不可用,程序可以优雅地处理这种情况,而不是直接崩溃。

日志和调试:在目标计算机上运行程序时,考虑添加日志记录功能,以便可以更容易地诊断问题。此外,使用调试工具(如 Visual Studio 的远程调试功能)可以帮助更深入地了解问题所在。

运行程序后,弹出如下界面:

在C:\Windows\System32文件夹中找到上述dll,复制到exe所在目录下

2、应用程序无法正常启动

第一步的dll并非只存在C:\Windows\System32文件夹中,如果复制错误,将导致应用程序无法正常启动。​

当Visual Studio 2022编译的Release版本程序在其他计算机上无法正常启动时,可能是由于多种原因导致的。以下是一些可能的解决方案:

检查依赖项:​首先,确保程序所需的所有依赖项都已正确安装和配置。这可能包括运行时库、第三方组件或框架。使用依赖项检查工具可以帮助识别缺少的DLL或组件。

安装Visual C++可再发行组件:如果程序使用了Visual C++编写的代码,确保目标计算机上安装了相应的Visual C++可再发行组件。这些组件包含了程序运行时所需的DLL文件。

配置运行库:在Visual Studio中,您可以配置项目以使用不同的运行库。例如,选择多线程(/MT)或多线程调试(/MTD)选项可以避免程序对运行时库的依赖。确保在发布版本中选择适合的配置。

更新目标计算机上的系统:确保目标计算机上的操作系统和所有必要的更新都已安装。有时,缺少系统更新可能会导致与程序不兼容的问题。

检查程序配置:查看程序的配置文件或设置,确保它们与目标计算机的环境相匹配。例如,检查路径、环境变量或注册表设置是否正确。

使用事件查看器:在目标计算机上,使用事件查看器检查应用程序日志和系统日志,以获取有关程序启动失败的详细信息。这可能会提供有关错误原因的线索。​

3、This application failed to start because no Qt platform plugin could be initialized.

包含QT的程序,运行的时候可能会遇到This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Reinstarlling...这个报错。

错误 "This application failed to start because no Qt platform plugin could be initialized." 通常意味着Qt应用程序在尝试加载平台插件时遇到了问题。平台插件是Qt应用程序用来与操作系统窗口系统进行交互的组件。以下是解决这个问题的一些步骤:

该错误大致意思就是qt平台插件初始化失败了。如图:

解决方法:

将D:\qt\qt5.12.10\5.12.10\msvc2017_64\plugins里面的文件夹复制到exe所在目录下

至此,该exe在另一台计算机正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/275810.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

honle电源维修UV电源控制器维修EVG EPS60

好乐UV电源控制器维修;honle控制器维修;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号: EVG EPS 60/120、EVG EPS 100、EVG EPS200、EVG EPS 220、EVG EPS 340、EVG EPS40C-HMI、EVG EPS60 HONLE好乐uv电源维修故障包括&#…

React组件(函数式组件,类式组件)

函数式组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!-- 引…

基于FPGA加速的bird-oid object算法实现

导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——基于FPGA加速的bird-oid object算法实现。 &#xff08;更多其他案例请参考网站&#xff1a; Final Projects ECE 5760&#xff09; 1. 项目概述 项目网址 ECE 5760 Final Project 模型说明 Bird-oid object …

镭雕机:如何利用激光技术实现高质量的产品标记

镭雕机是一种利用激光技术实现高质量产品标记的设备。它通过激光束在各种不同的物质表面进行精确的打标&#xff0c;可以产生永久性的标记效果&#xff0c;这些标记不仅精美&#xff0c;而且具有高度的精度和清晰度。以下是镭雕机如何利用激光技术实现高质量产品标记的详细过程…

寄存器(内存访问)

文章目录 寄存器&#xff08;内存访问&#xff09;1 内存中字的存储2 DS和[address]3 字的传送4 mov、add、sub指令5 数据段6 栈7 CPU提供的栈机制8 栈顶超界的问题9 push、pop指令10 栈段 寄存器&#xff08;内存访问&#xff09; 1 内存中字的存储 CPU中&#xff0c;用16位寄…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用&#xff1a; 金融市场中的熔断机制&#xff1a;在金融交易系统中&#xff0c;熔断机制&#xff08;Circuit Breaker&#xff09;是一种市场保护措施&#xff0c;旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外&#xff0c;国外比较流行的还有&#xff1a;Cloudera发行版(CDH)、Hortonworks发行版&#xff08;HDP&#xff09;、MapR等&am…

【网络安全】-数字证书

数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据&#xff0c;它为网络应用提供了一种验证通信实体身份的方式。具体来说&#xff0c;数字证书是由权威的证书授权&#xff08;CA&#xff09;中心签发的&#xff0c;包含公开密钥拥有者信息以及公开密…

linux中将终端Terminal添加到任务栏

问题描述 如题&#xff0c;默认的任务栏中没有终端这一组件&#xff0c;因此&#xff0c;想要打开终端&#xff0c;需要先切换到桌面&#xff0c;影响了使用体验。 解决方法 1.在applications里找到Terminal Emulator。 2.将Terminal Emulator拖动到任务栏&#xff0c;即可…

【完美实现】VITE + VUE3 + SVG图片解析+element-plus开发环境初始化(基于macos)

一、最终效果 废话少说&#xff0c;直接上效果 这是我的初始化程序提供的页面&#xff0c;在这个页面上实现了一下几个功能&#xff1a; 1、vite初始化之后的路由安装和初始化&#xff1b; 2、标准SVG的解析&#xff0c;并可调整大小、颜色&#xff1b; 3、element-plus的安…

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候&#xff0c;都是通过Ajax在规定时间内轮询调用web api&#xff0c;这样简单省事&#xff0c;但是当看板多了&#xff08;并发量上来&#xff09;以后&#xff0c;比较消耗服务器的性能&#xff0c;所以最近研究了websocket&#xff0c;希望使用…

运放的基础知识

运算放大器&#xff08;Operational Amplifier&#xff0c;简称运放&#xff09;是一种直流耦合、差模&#xff08;差动模式&#xff09;输入的高增益电压放大器&#xff0c;通常具有单端输出。它能产生一个相对于输入端电势差大数十万倍的输出电势&#xff08;对地而言&#x…

Jenkins Pipeline实现Golang项目的CI/CD

Jenkins Pipeline实现Golang项目的CI/CD 背景 最近新增了一个Golang实现的项目&#xff0c;需要接入到现有的流水线架构中。 流程图 这边流程和之前我写过的一篇《基于Jenkins实现的CI/CD方案》差不多&#xff0c;不一样的是构建现在是手动触发的&#xff0c;没有配置webho…

蓝桥杯倒计时 36天-DFS练习

文章目录 飞机降落仙境诅咒小怂爱水洼串变换 飞机降落 思路&#xff1a;贪心暴搜。 #include<bits/stdc.h>using namespace std; const int N 10; int t,n; //这题 N 比较小&#xff0c;可以用暴力搜搜复杂度是 TN*N! struct plane{int t,d,l; }p[N]; bool vis[N];//用…

OceanBase中binlog service 功能的试用

OBLogProxy简介 OBLogProxy即OceanBase的增量日志代理服务&#xff0c;它可与OceanBase建立连接并读取增量日志&#xff0c;从而为下游服务提供了变更数据捕获&#xff08;CDC&#xff09;的功能。 关于OBLogProxy的详尽介绍与具体的安装指引&#xff0c;您可以参考这篇官方OB…

RocketMQ快速入门_2. rocketmq 的应用场景、与其他mq的差异

0. 引言 之前我们讲解过rabbitMQ&#xff0c;本期我们将进入吞吐量更加强大的rocketMQ的学习。 1. 基础概念 如果你是刚接触MQ的同学&#xff0c;还不清楚消息队列的基础概念的&#xff0c;可以参考我之前这篇文章&#xff1a; https://wu55555.blog.csdn.net/article/deta…

IOS降级后从高版本到低版本恢复备份

IOS降级后从高版本到低版本恢复备份 此方法只适用于小版本还原&#xff0c;比如17.4->17.3&#xff0c;未验证大版本恢复可行性手机型号&#xff1a;iphone 13pro 系统版本&#xff1a;17.4 降级版本&#xff1a;17.3.1 步骤 通过itunes或者MacOS系统下对当前版本进行备份…

C++中的STL-string类

文章目录 一、为什么学习string类&#xff1f;1.1 C语言中的字符串 二、准库中的string类2.2 string类2.3 string类的常用接口说明2.4 string类对象的容量操作2.5 string类对象的访问及遍历操作2.5 string类对象的修改操作2.7 string类非成员函数2.8 模拟实现string 一、为什么…

部署私有KMS服务器,并设置自动激活Windows和office

介绍 vlmcsd是一个KMS激活服务器的模拟器&#xff0c;可以在Windows Server之外的平台上部署自己的KMS服务器。它是一个开源项目&#xff0c;由Wind4开发&#xff0c;目前在Linux上运行&#xff08;包括Android、FreeBSD、Solaris、Minix、Mac OS、iOS和Windows等&#xff09;…

浅浅探索Memcached

一、NoSQL介绍 NoSQL是对 Not Only SQL、非传统关系型数据库的统称。 NoSQL一词诞生于1998年&#xff0c;2009年这个词汇被再次提出指非关系型、分布式、不提供ACID的数据库设计模式。 随着互联网时代的到来&#xff0c;数据爆发式增长&#xff0c;数据库技术发展日新月异&a…