2 beluma123 Beluma123 于 2016.03.01 09:14 提问

Windows可执行程序在部分电脑上无法运行

现在有编译成功的windows exe程序,它可以在其他的电脑上正常运行,为什么在我的电脑上无法运行?
具体现象为:双击运行后电脑没有反应,但是查看任务管理器里面的进程有它,并且无法结束此进程.此程序运行需要额外的opencv的几个dll文件,在其他电脑上若是没有这些dll文件,那么会显示"缺少某某某dll文件,程序无法运行",但是在我的电脑上仍然是无法运行.若是此exe同目录下有需要的dll文件,那么其他电脑可以正常运行,我的电脑无法运行.我的win7与别的电脑上的windows不是完全相同的版本.
请问有没有大神遇到过类似的问题呢?

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.01 12:22
已采纳

如果你的程序是通过loadlibrary等动态方式加载的dll,那么表现出来就是不会有错误提示,而是程序丢出异常,你可以在系统日志中看到。
程序在不同环境中运行,因为不同的环境,你的程序存在没有发现的bug,也是可能的,比如外部文件路径不正确,数据不正确等。
还有杀毒软件或者别的软件也可能干扰你的程序的运行。

Beluma123
Beluma123 已经解决了,是因为一个杀毒软件的原因.
2 年多之前 回复
Beluma123
Beluma123 已经解决了,是因为一个杀毒软件的原因.
2 年多之前 回复
hikarisamax
hikarisamax   2016.03.01 11:22

找一个depends工具,分32位和64位的,用管理员权限运行一次后可以右键查看exe文件所需的dll文件以来,估计你的问题就是那个exe程序所需的其他dll库没有在另一台电脑上所以不能运行。

Beluma123
Beluma123 回复lm_whales: 嗯,我在用依赖工具分析,有两个问题哈:1.要是exe缺少依赖的dll不是会提示吗?还是说有的就不会提示而是直接崩溃?2.是不是同目录下有需要的dll,可执行程序就能找到它呢?
2 年多之前 回复
lm_whales
lm_whales 看看,编译 选项有没有针对特定CPU等情况,有的话,另建一个针对 你的CPU的,或者主流CPU的
2 年多之前 回复
Beluma123
Beluma123 关键是我用VS2010编译它的源码也是这样啊...
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Windows7 如何发布Qt可执行程序
Windows7 如何发布Qt可执行程序 近期学习Qt,并使用Qt编写一个小型参数解析工具,但是,我将可执行程序拷到一个没有安装Qt环境的电脑上,运行失败,报缺少库文件。于是我想到是不是和C++程序一样,需要静态编译,将库文件编译到exe文件中。结果虽然和我想的一样,但是,Qt静态编译很麻烦。 网上说,Qt发布可以采用两种方式: 1.静态编译,生成单一的可执行文件 2.动态编译,同
CGYWIN 编译的可执行程序在WINDOWS平台中运行时,解决system函数不能使用的问题
原来在linux平台运行的一段代码,移植后将编译出来的EXE拷贝到与cgywin无关的目录中的xp平台运行,基本功能包括进程间通信、数据管理、日志管理、其它进程管理等。经测试验证,大部分功能都能正常工作,只是在使用system函数加载其它进程时,函数总是执行失败,错误提示为:找不到指定的目录或者文件。 起初分析以为是找不到system将要加载的可执行文件,所以将进程所在的目录加入到XP的path
此应用无法在电脑上运行
win10打开程序提示此应用无法在你的电脑上运行的解决方法 链接:http://www.xitonghe.com/jiaocheng/Windows10-9468.html在Windwos10操作系统中,有不少用户反应,在运行程序的时候出现了:此应用无法在你的电脑上运行 该怎么办呢?出现这种情况一般分为两大类,第一类是自带应用出错,另外一种就是第三方软件出错。下面系统盒小编来给大家分享下解决方法。
windows 安装程序无法将windows配置为在此计算机的硬件上运行
今天在thinkpad上安装windows8 Enterprise版,出现“windows 安装程序无法将windows配置为在此计算机的硬件上运行”的错误,比较郁闷,之前在很多机子上安装过了,都没有什么问题的。         经过一番研究,发现是电脑硬盘模式的问题,电脑的硬盘模式为兼容模式,不知道是什么原因在这种模式下win8安装失败,进bios把硬盘模式设置成兼容模式即可。 现在跟大家讲
Qt解决在其他电脑运行可执行文件
首先,以 release 方式编译源代码,然后将生成的 exe 程序放到一个单独的文件夹中。 再从开始菜单打开 Qt 命令行工具。 在命令行中,进入到第一步中 exe 程序所在的文件夹。 再使用 Qt 自带的 windeployqt 工具命令,其语法格式为: wind
在64位操作系统上运行32位的程序
运行 32 位程序 WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改。WOW64 子系统是通过在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的创建 32 位环境。WOW64 子系统有关的详细信息,请参阅 Microsoft
为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?
为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?  分享| 2014-11-09 20:20147****3349 | 浏览 448 次  操作系统 在同一个电脑里,在matlab里可打开exe程序,但把exe文件放在其他盘里就打不开了,只是闪一下doc界面,我把MCRInstall.exe也放到同一目录下并且安装了,哪位大神帮忙解答一下,
解决操作系统无法打开.exe可执行文件的方法
今天一同事电脑出现严重问题,打开我的电脑后弹出一个对话框说“无法找到C:\WINDOWS\system32\rundll32.exe”,然后打开一些已经安装的软件程序却弹出一个让你选择打开方式的对话框,瑞星杀毒软件被禁用,整个机子像瘫痪了一样,无法运行任何程序。其实这是病毒或木马对exe文件打开方式进行了修改,导致无法打开任何可执行文件。经过研究终于找到解决方法。     一般朋友遇到此类问
如何编译可以在arm平台上运行的可执行程序?
1、建立交叉编译环境      1)修改根目录下opt文件夹属性                sudo chmod a+w /opt      2)解压我们找到的交叉编译工具链到/opt中                tar xf crosstool.tar.bz2 -C /opt      3) 修改bash配置文件(~/.bashrc)                在最后添加   export PATH=$PATH:/opt/crosstool/gcc-4.0.2-glibc-2.3.6/ar
Windows可执行文件简述
操作系统中的文件是一种抽象的机制,提供了一种在磁盘上保存信息而且方便以后读取的方法。在Windows操作系统中,一个用户可以最直接体会到的文件的形式就是以.exe、.dll等为扩展名的可执行文件。伴随着Windows操作系统的不断进步,其可执行文件的格式也发生了巨大变化。这期间主要有4个过程:DOS中出现的最简单的以.com为扩展名的可执行文件和以.exe为扩展名的MZ格式(MZ是MZ格式的主要作