c++开发完成一个项目怎么生成exe文件

时间:2022-08-28 08:54:18
用c++开发一个项目,用的是金山卫士的kui库,结果弄完后安装配置导出的msi文件在没有vc的电脑上不能使用。请问怎么样才能生成用户可用的文件呢(注意使用的是非mfc和atl库)

6 个解决方案

#1


静态编译?

#2


用depend查看需要什么dll
可能没带上kui的dll
也可能是Debug版

#3


还有谁知道的吗

#4


vs编辑器编出来的东西,要依赖于vs安装时安装的文件,所以在没有装vs的电脑上会因为找不到这些文件而出错

程序依赖的Microsoft.VC90.DebugCRT库,版本号是9.0.21022.8,需要32位机器版本的CRT。这个依赖项一般是因为你的程序是调试版,所以Visual Studio在编译的时候,将调试版的CRT加入程序的依赖项。

2.从Visual Studio的安装文件夹里面将D:"Program Files"Microsoft Visual Studio 9.0"VC"redist"Debug_NonRedist"x86中的Microsoft.VC90.DebugCRT整个文件夹拷贝到应用程序所在的文件夹里面,注意:

a)如果你的程序依赖的是32位的CRT,则要拷贝x86文件夹里面的Microsoft.VC90.DebugCRT文件夹,如果是先x64程序,则要拷贝x64文件夹里面。

b)你需要确定Microsoft.VC90.DebugCRT文件夹里面的Microsoft.VC90.DebugCRT.manifest文件里面保存的版本信息而你程序依赖的版本信息匹配,Microsoft.VC90.DebugCRT.manifest里面的版本信息大版本号一定要一致,小版本号一定要等于或者大于你程序依赖的CRT的小版本号。比如上例中,我们的程序是依赖于CRT 9.0.21022.8,而我们的Microsoft.VC90.DebugCRT.manifest的版本是9.0.30729.1,这样是可以的;而8.0.30729.1就会有问题。如果大版本号一样,小版本号不一致的话,一个比较简单的方案就是修改程序的manifest文件,使其互相匹配就可以了。



上面是debug版发布时要加的文件,release版在vs2005目录下找到x86目录中相应的文件夹后,把里面的文件考到自己程序的同级目录下就行了

详细可以看
http://hi.baidu.com/ankang1986/blog/item/4841baee7e4e25222df53416.html

#5


将依赖的文件加进去就行了

#6


/MT编译

#1


静态编译?

#2


用depend查看需要什么dll
可能没带上kui的dll
也可能是Debug版

#3


还有谁知道的吗

#4


vs编辑器编出来的东西,要依赖于vs安装时安装的文件,所以在没有装vs的电脑上会因为找不到这些文件而出错

程序依赖的Microsoft.VC90.DebugCRT库,版本号是9.0.21022.8,需要32位机器版本的CRT。这个依赖项一般是因为你的程序是调试版,所以Visual Studio在编译的时候,将调试版的CRT加入程序的依赖项。

2.从Visual Studio的安装文件夹里面将D:"Program Files"Microsoft Visual Studio 9.0"VC"redist"Debug_NonRedist"x86中的Microsoft.VC90.DebugCRT整个文件夹拷贝到应用程序所在的文件夹里面,注意:

a)如果你的程序依赖的是32位的CRT,则要拷贝x86文件夹里面的Microsoft.VC90.DebugCRT文件夹,如果是先x64程序,则要拷贝x64文件夹里面。

b)你需要确定Microsoft.VC90.DebugCRT文件夹里面的Microsoft.VC90.DebugCRT.manifest文件里面保存的版本信息而你程序依赖的版本信息匹配,Microsoft.VC90.DebugCRT.manifest里面的版本信息大版本号一定要一致,小版本号一定要等于或者大于你程序依赖的CRT的小版本号。比如上例中,我们的程序是依赖于CRT 9.0.21022.8,而我们的Microsoft.VC90.DebugCRT.manifest的版本是9.0.30729.1,这样是可以的;而8.0.30729.1就会有问题。如果大版本号一样,小版本号不一致的话,一个比较简单的方案就是修改程序的manifest文件,使其互相匹配就可以了。



上面是debug版发布时要加的文件,release版在vs2005目录下找到x86目录中相应的文件夹后,把里面的文件考到自己程序的同级目录下就行了

详细可以看
http://hi.baidu.com/ankang1986/blog/item/4841baee7e4e25222df53416.html

#5


将依赖的文件加进去就行了

#6


/MT编译