首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

vs2008静态编译解决思路

2012-12-14 
vs2008静态编译编译的时候运行库选择/MTd,但会出现如下错误:#error :Please use the /MD switch for _AFXD

vs2008静态编译
编译的时候运行库选择/MTd,但会出现如下错误:
#error :  Please use the /MD switch for _AFXDLL builds
我看了下错误的代码如下:
#if defined(_AFXDLL) && !defined(_DLL)
//#error Please use the /MD switch for _AFXDLL builds
#endif
是不是说不能静态编译啊
[最优解释]
运行库选择/MD不行吗?

PS:带d的是调试,不带就是release
MT是连接到静态库,MD则是连接到DLL

MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。
[其他解释]

引用:
运行库选择/MD不行吗?

PS:带d的是调试,不带就是release
MT是连接到静态库,MD则是连接到DLL

MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。


我是在已有的软件上作了些修改,原有的工程就是用的/MD,但这样即使我加上运行库,也无法在别的没有环境的机子上运行,所以想用/MT 编译,但又出现了如上问题
[其他解释]
引用:
我是在已有的软件上作了些……

在发布文件中添加上文件夹Microsoft.VC90.CRT,里面添加上msvcm90.dll,msvcp90.dll,msvcr90.dll三个库,,release调试,然后在放到别人的机子上试试
[其他解释]
引用:
引用:我是在已有的软件上作了些……
在发布文件中添加上文件夹Microsoft.VC90.CRT,里面添加上msvcm90.dll,msvcp90.dll,msvcr90.dll三个库,,release调试,然后在放到别人的机子上试试

嗯,太感谢了,问题解决了。能告诉我原因么,里面有好几个相似的文件夹 ,Microsoft.VC90.MFC, Microsoft.VC90.ATL,还有一些debug的文件夹,其他的怎么不可以
[其他解释]
动态链接库,安装环境的时候会生成的一些文件,打包的时候带上就可以在别人的电脑上直接使用了

热点排行