程序运行时显示:msvcr100.dll /msvcr100d.dll 丢失--->解决方案在此
来源:互联网 发布:mac下启动盘制作工具 编辑:程序博客网 时间:2024/05/16 13:58
本人原来的问题帖http://bbs.csdn.net/topics/390781716,解答见斜体字后面(lz可是花了20积分的,看到有用的记得顶一下哦)
编译环境:本人编译环境VS2010 pro,运行于windows7 32bit ultimate下。
测试环境:洁净的 WIndows 7 64bit Ultimate 和 Windows 8.1 32bit pro,未安装任何编程软件。问题:本人尝试编译一个很小的程序,构建一个项目之类的,编译链接完全没问题。在本机运行良好。
debug版本运行于测试环境,提示丢失msvcr100d.dll。
release版本运行于测试环境,提示丢失mscvr100.dll。
现状:本人使用VS自带的命令提示符(VS_CMD)编译的程序完好运行于测试环境。编译命令是cl(cl.exe)。
而VS搞一个项目编译出的却不行,为什么?求解决方案。不是复制dll文件什么的,谢谢!!
PS:本人查看VS项目的log文件看到其编译使用的程序也是cl.exe.
生成启动时间为 2014/5/9 19:17:17。
1>项目“F:\testChar\ix32or64\ix32or64\ix32or64.vcxproj”在节点 2 上(rebuild 个目标)。
1>_PrepareForClean:
正在删除文件“Release\ix32or64.lastbuildstate”。
InitializeBuildStatus:
正在创建“Release\ix32or64.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
ClCompile:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt isX64orX86.cpp
isX64orX86.cpp
Link:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"F:\testChar\ix32or64\Release\ix32or64.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\ix32or64.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"F:\testChar\ix32or64\Release\ix32or64.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"F:\testChar\ix32or64\Release\ix32or64.lib" /MACHINE:X86 Release\isX64orX86.obj
正在生成代码
已完成代码的生成
ix32or64.vcxproj -> F:\testChar\ix32or64\Release\ix32or64.exe
Manifest:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"F:\testChar\ix32or64\Release\ix32or64.exe;#1" /manifest Release\ix32or64.exe.intermediate.manifest
FinalizeBuildStatus:
正在删除文件“Release\ix32or64.unsuccessfulbuild”。
正在对“Release\ix32or64.lastbuildstate”执行 Touch 任务。
1>已完成生成项目“F:\testChar\ix32or64\ix32or64\ix32or64.vcxproj”(rebuild 个目标)的操作。
生成成功。
已用时间 00:00:02.41
如果你习惯使用VS_CMD,可以使用在编译选项中加上/MD 或者/MT试试。详情见cl /?提示。
如果是直接使用VS_Project形式,可以在项目属性->配置属性-> C/C++ -> 代码生成 ->运行库,此项改为/MT或者/MTd。建议前者,因为文件会小很多;)
原理如下:
(1)/MT和/MTd表示采用多线程CRT库的静态lib版本。该选项会在编译时将运行时库以静态lib的形式完全嵌入。该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的二进制代码因链入庞大的运行时库实现而变得非常臃肿。当某项目以静态链接库的形式嵌入到多个项目,则可能造成运行时库的内存管理有多份,最终将导致致命的“Invalid Address specified to RtlValidateHeap”问题。另外托管C++和CLI中不再支持/MT和/MTd选项。
(2)/MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。链接时将按照传统VC链接dll的方式将运行时库MSVCRxx.DLL的导入库MSVCRT.lib链接,在运行时要求安装了相应版本的VC运行时库可再发行组件包(当然把这些运行时库dll放在应用程序目录下也是可以的)。 因/MD和/MDd方式不会将运行时库链接到可执行文件内部,可有效减少可执行文件尺寸。当多项目以MD方式运作时,其内部会采用同一个堆,内存管理将被简化,跨模块内存管理问题也能得到缓解。
原理介绍详情参照http://blog.csdn.net/wqvbjhc/article/details/6612099
- 程序运行时显示:msvcr100.dll /msvcr100d.dll 丢失--->解决方案在此
- “无法启动此程序,因为计算机中丢失MSVCR100D.dll”解决方案
- 当你的程序在朋友的机器上显示丢失msvcr100d.dll的时候
- 当你的程序在朋友的机器上显示丢失msvcr100d.dll的时候
- 当你的程序在朋友的机器上显示丢失msvcr100d.dll的时候
- 检查软件版本运行时提示丢失 msvcr100d.dll
- opencv配置及msvcp100d.dll、msvcr100d.dll丢失解决方案
- 【C++】VS2010生成的程序在安装了vc2010运行库的机器上提示“丢失MSVCR100D.dll”
- 【C++】VS2010生成的程序在安装了vc2010运行库的机器上提示“丢失MSVCR100D.dll”
- 无法启动此程序,因为计算机中丢失MSVCR100D.dll。尝试重新安装程序以解决此问题。
- 安装wampserver2时提示丢失MSVCR100.dll
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
- VS2010生成exe在别的机子上运行提示“丢失MSVCR100D.dll”
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
- VS2010生成exe在别的机子上运行提示“丢失MSVCR100D.dll”
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
- VS2010生成exe在别的机子上运行提示“丢失MSVCR100D.dll”
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
- Leetcode 贪心 Best Time to Buy and Sell Stock
- PHP 文件处理
- 利用大文件制作在linux下数个独立系统(不改变原有分区情况下继续分区)
- 【小社交】谁是下一个陌陌?陌生人社交网络大起底!
- 基于Cookie的安全检查机制
- 程序运行时显示:msvcr100.dll /msvcr100d.dll 丢失--->解决方案在此
- 达到供热通过奋斗
- arm-linux-gcc/ld/objcopy/objdump使用总结
- android 常用控件之 (CheckBox)使用
- Android权限之二packages.xml解析
- poj 2418 Hardwood Species (map)
- 建立复合主键
- 获取设备环境句柄的方法
- 数据结构-红黑树