问题再现:
在Debug文件夹下,发现了exe文件,拿到其他电脑上运行,发现总是提示缺少 QtCored4.dll等类似文件,,
问题原因:
在他人电脑上,可能并没有安装编程软件,电脑中就会缺少相应的运行库,而大多数编程软件采用的都是动态链接,这样就会因为缺少这些文件, 导致编译生成的程序在某些电脑上无法正常运行,
解决方式:
1 遇到这种情况当然可以在目标计算机上安装需要的运行库,但是对于一些小程序就完全没有必要了.
2 可以设置C运行时库为静态链接,来避免出现找不到某某DLL文件的问题.
3 可以将文件打包.
我用的是vs2012 ,所以将vs2012静态链接的设置写一下
项目->属性->C/C++->代码生成->运行库 将 多线程DLL(/MDd) 或者多线程调试DLL(/MTd) 改为 多线程(/MD) 或者 多线程调试(/MT) 。
多线程(/MD) 和 多线程调试(/MT) 的区别就是Release和Debug的区别。
问题弊端
静态链接之后的文件会比动态链接的文件要大,所以仅仅适合一些小程序的修复,大程序 大家还是打包吧!