vs2008静态编译

Nynia 2012-11-14 02:16:52
编译的时候运行库选择/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
是不是说不能静态编译啊
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziyue007 2012-11-16
  • 打赏
  • 举报
回复
引用 2 楼 Nynia 的回复:
我是在已有的软件上作了些……
在发布文件中添加上文件夹Microsoft.VC90.CRT,里面添加上msvcm90.dll,msvcp90.dll,msvcr90.dll三个库,,release调试,然后在放到别人的机子上试试
ziyue007 2012-11-16
  • 打赏
  • 举报
回复
动态链接库,安装环境的时候会生成的一些文件,打包的时候带上就可以在别人的电脑上直接使用了
Nynia 2012-11-16
  • 打赏
  • 举报
回复
引用 1 楼 ziyue007 的回复:
运行库选择/MD不行吗? PS:带d的是调试,不带就是release MT是连接到静态库,MD则是连接到DLL MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。
我是在已有的软件上作了些修改,原有的工程就是用的/MD,但这样即使我加上运行库,也无法在别的没有环境的机子上运行,所以想用/MT 编译,但又出现了如上问题
Nynia 2012-11-16
  • 打赏
  • 举报
回复
引用 3 楼 ziyue007 的回复:
引用 2 楼 Nynia 的回复:我是在已有的软件上作了些…… 在发布文件中添加上文件夹Microsoft.VC90.CRT,里面添加上msvcm90.dll,msvcp90.dll,msvcr90.dll三个库,,release调试,然后在放到别人的机子上试试
嗯,太感谢了,问题解决了。能告诉我原因么,里面有好几个相似的文件夹 ,Microsoft.VC90.MFC, Microsoft.VC90.ATL,还有一些debug的文件夹,其他的怎么不可以
ziyue007 2012-11-15
  • 打赏
  • 举报
回复
运行库选择/MD不行吗? PS:带d的是调试,不带就是release MT是连接到静态库,MD则是连接到DLL MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧