编译的时候运行库选择/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,但这样即使我加上运行库,也无法在别的没有环境的机子上运行,所以想用/MT 编译,但又出现了如上问题
------其他解决方案--------------------------------------------------------
在发布文件中添加上文件夹Microsoft.VC90.CRT,里面添加上msvcm90.dll,msvcp90.dll,msvcr90.dll三个库,,release调试,然后在放到别人的机子上试试
------其他解决方案--------------------------------------------------------
嗯,太感谢了,问题解决了。能告诉我原因么,里面有好几个相似的文件夹 ,Microsoft.VC90.MFC, Microsoft.VC90.ATL,还有一些debug的文件夹,其他的怎么不可以
------其他解决方案--------------------------------------------------------
动态链接库,安装环境的时候会生成的一些文件,打包的时候带上就可以在别人的电脑上直接使用了