Qt Creator写的小程序在Creator软件中能运行,但在目录当中直接点击EXE运行不了。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt Creator写的小程序在Creator软件中能运行,但在目录当中直接点击EXE运行不了。相关的知识,希望对你有一定的参考价值。

刚接触Qt,下载了个for Windwos安装包装上了。并照着书试着了第一个小程序,但遇到了不少问题。首先在Qt Creator软件界面里构建程序后在软件界面里点的运行,所写的小程序能正常启动。但在文件目录中直接点击生成的EXE文件却显示各种dll链接库找不到之类的错误信息。貌似将DLL文件复制进程序目录后就不再提示了。但是有时找不到DLL文件所有位置。请问正常情况下应该怎么设置?另外如果链接库链接正常了,如果正常发布程序时,要怎么将DLL链接库打包进目录里?还是说要手动的完成?

参考技术A 正常情况下应该设置系统的环境变量 把creator目录的bin和lib都加到环境变量里 这样就不会再提示找不到动态库了追问

那如果程序完成了,要发布了,那么DLL动态链接库要手动复制进目录里?然后打包发布?否则别人电脑运行程序时不是也找不到链接库

追答

对 是这样的 所以就有静态编译产生了 但是目前好像QT只对付费版提供此项功能 所以只能把需要的库都复制过来 一起发布

参考技术B   要发布release版本的程序,当然要把相关的库文件一起打包发布,你看看我们自己电脑上安装的软件,哪一个目录底下不是好多dll,那些库文件都是打包做成安装包发布给我们的啊。当然也可以采取静态编译的办法解决此问题,不过静态编译还要重新静态编译Qt库,那就很麻烦了。
  不过对于资源文件,比如图片什么的,可以做成资源文件,编译进可执行文件,以避免找不到文件的问题。要注意:如果是采用资源文件的方式,那么在程序里就不要写文件的相对或绝对路径了,要按照资源文件的路径来写文件名。追问

问题是在编译的时候如何让DLL文件自动导进目录里,还是说这个步骤必须手动复制进去?

追答

  这部分不属于编译管的,你只能自己将相关dll打包。
  你可以使用Dependency Walker tool工具,就是一个depends.exe的程序,来查看一个exe文件跟哪些dll关联。将那些目标机器上没有的dll都复制出来。你也可以将这些dll、exe用一些安装包制作软件制作成安装包给别人使用。
  需要注意的是:如果你想在互联网上发布程序作品,请注意版权问题。

本回答被提问者采纳

在windows下用qt写的程序的中文注释在Ubuntu下qt creator显示乱码

在windows下用qt creator写的程序的中文注释在Ubuntu9.04下qt creator显示乱码,怎么解决?

windows的中文编码是GB2312,ubuntu9.04下的是utf16。所以乱码。解决方法是在qt creator中选择文档的编码是GB2312。 参考技术A 将文件保存为UTF-8编码,在ubuntu下就能正常显示了。

如:用win下的notepad将文件打开,另存为时选UTF-8编码。
在UBUNTU下如用gedit打开没乱码,也可以用这种方式。
我知道用openoffice打开一定没乱码的,也可以另存,改改后缀就行。
参考技术B 是不是你在win下用的字体在Ubuntu系统里没有呢?。。。我不编程,随便给你个提示吧,,哈哈

以上是关于Qt Creator写的小程序在Creator软件中能运行,但在目录当中直接点击EXE运行不了。的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mint Linux 中配置 QT creator

Qt creator运行出现moc文件错误求大神解答

QT creator 如何调用VC写的静态库

QT Creator应用程序开发——01

Qt Creator 作为嵌入式 Linux 的调试系统

Qt——Ubuntu下安装Qt Creator的方法步骤总结及其界面功能与基本设置简介(Qt简介Qt Creator版本选择软件入门常用设置)