我在Visual Studio 10中编译项目,编译后的可执行文件在win 7上运行正常,但由于缺少msvcrt100.dll而无法在win xp上运行。 我尝试使用" / NOTDEFAULTLIB"但它也删除了我使用的其他一些外部库。 有没有办法不链接最新的Microsoft运行时库?
提前致谢。
答案 0 :(得分:6)
要不链接DLL,您必须静态链接运行时。
要执行此操作,请转到C / C ++属性 - >代码生成和运行时库从下拉列表中选择多线程(/ MT)或多线程调试(/ MTd)。请注意,一旦您使用静态运行时库,您链接的所有其他库代码也必须使用相同的设置构建。您还可能需要向链接器添加其他库 - >在附加依赖项下输入。
答案 1 :(得分:3)
它只适用于Windows 7机器,有人之前安装了该DLL。
创建安装程序(使用安装项目很容易)时,一个简单的修复方法是将msvcr100.dll与您自己的二进制文件一起复制。如果您只有EXE,那么简单的解决方案是链接CRT的静态版本。切换到发布版本,右键单击项目,属性,C / C ++,代码生成,运行时库设置。将其从默认/ MD更改为/ MT。