exe文件打开后闪退,VS怎么设置生成可执行文件?
最近在编写一个设计管理系统,利用EasyX库编写完成后,按要求生成独立的可执行文件的过程中发现了很多问题,这里利用vs完成要求。
1 怎么用vs生成可执行文件
程序是用C写的,并没有用MFC,在设置时首先必须搞清楚
第一步
如果使用MFC,则如下
【1】debug方式的静态链接:
设置:
(1)项目 -> 配置属性->常规->MFC的使用:在静态库中使用MFC(如果有使用MFC)。
(2)项目 -> 配置属性->C/C+±>代码生成->运行库 :选择 多线程调试(/MTd)。
【2】release方式,就是正式版发行版
一般可以配置以下两项:
(1)项目 -> 配置属性->常规->MFC的使用 :在静态库中使用MFC(如果有使用MFC)。
(Project—Properties—Configuration Properties—General—Use of MFC—Use MFC in a Static Library)
(2)项目 -> 配置属性->C/C+±>代码生成->运行库 :选择 多线程(/MT)。
(Project—Properties—Configuration Properties—C/C++—Code Generation—Runtime Library—Multi-threaded(/MT))
如果没使用
项目->项目属性->配置属性->C/C+±>代码生成->运行库中四个选项的关系:
多线程调试Dll (/MDd) 对应——-MD_DynamicDebug
多线程Dll (/MD) 对应————-MD_DynamicRelease
多线程(/MT) 对应—————–MD_StaticRelease
多线程(/MTd)对应—————-MD_StaticDebug
一句话总结就是:D用于动态,T用于静态,带d的是debug模式的
设置时,需要改成 多线程(/MT) 对应或者 多线程(/MTd)
第二步
将调试模式(Debug)改成发布模式(Release),具体做法在VS上方
Release 和Debug模式的区别就是:
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。
Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
第三步
将生成的exe文件从Release文件中移动到根目录下,如果你的程序里面调用了某个资源文件,一定要保证文件位置与你的程序相符合,最好直接写在同一个目录下
这是由于VS生成的exe文件在Release文件内呆着,没有和资源文件在一起,或者是不是X64文件夹内的exe文件,故而运行出错,VS内能运行是因为VS已经在编译器整合了这些资源文件和exe文件,但是实际调用不行,必须移动到相同文件夹。