**
Qt编译通过,运行时出现the process was ended forcefully问题的解决方案
**
Debug和Release模式下编译均能通过,调用外部函数也不会提示错误,但是运行就是出现:程序异常关闭,the process was ended forcefully。
造成这个错误的常见问题是:外部库引用错误,主要是工程有了声明但没有找到DLL。
针对这个问题我们采用以下几个步骤来解决:
- 规划Qt工程
首先,我们在项目选项中关闭 Shadow build选项
这样之后,执行编译得到的debug和release目录就会出现在主目录下面:
这两个目录下包含了程序生成的中间文件,以及可执行程序。
但是其中很多的obj文件我们根本不需要去关注,因此我们创建bin目录,在bin目录下创建debug和release文件夹
然后在.pro文件中,指明可执行文件存放的位置:
- 指明外部库的目录
接着,pro文件中我们指明了外部库的lib路径和include路径:
- 将DLL放置在可执行文件目录下
为了程序日后管理方便,我们可以考虑将lib文件和dll分开,dll文件放在可执行目录下。
点击运行:
可以看到,中间文件不会出现在这里,只会出现在Qt默认的release下面。
如果开启debug模式,生成的问题会自动生成到debug目录下,Qt自动对debug和release关键字做了替换。