在Windows XP SP2的干净安装上测试我用VC10 / MT编译的程序给我这个错误:“此应用程序无法启动,因为找不到MSVCRXXX.dll。重新安装应用程序可能会解决问题“。如何使我的程序与这个版本的Windows兼容,除了显然用我的程序运送dll(我真的不想这样做)。我知道问题是这个特定的操作系统版本没有附带MSVCR100.dll但是没有编译/ MT应该修复它?它也无法在Windows 7上运行。为什么编译器会忽略我的/ MT标志?!
答案 0 :(得分:2)
您应该将相关信息编辑到帖子中,而不是在评论中。
为什么编译器会忽略我的/ MT标志?!
因为您告诉链接器忽略默认库(/NODEFAULTLIB
)而不是链接msvcrt.lib
,这是CRT DLL
版本的导入库。
删除/NODEFAULTLIB
,删除msvcrt.lib
并让编译器/链接器完成工作。
或者将msvcrt[d].lib
更改为libcmt[d].lib
。