当我刚从VS2003 - > VS2008更新(并清理)的程序运行程序时,出现此R6034错误。更确切地说:R6034:一个应用程序试图加载C运行时库不正确
“R6034:一个应用程序做出了 试图载入C运行时库 不正确”
它似乎在跑步时几乎在同一个地方发生。我不知道为什么,但我尝试了一些我在googleing这个时发现的建议。例如添加msvc dll,但没有奏效。
为什么会出现这种错误的任何帮助将是伟大的。谢谢
当我刚从VS2003 - > VS2008更新(并清理)的程序运行程序时,出现此R6034错误。更确切地说:R6034:一个应用程序试图加载C运行时库不正确
“R6034:一个应用程序做出了 试图载入C运行时库 不正确”
它似乎在跑步时几乎在同一个地方发生。我不知道为什么,但我尝试了一些我在googleing这个时发现的建议。例如添加msvc dll,但没有奏效。
为什么会出现这种错误的任何帮助将是伟大的。谢谢
从Visual Studio 2005开始,您必须使用清单文件引用C运行时间。 通过将它们放在路径中引用DLL将会给出上述错误。
清单文件看起来像这样:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
可以使用MT命令清单集成在应用程序的资源,但是这不是强制性的。它也可以拥有除应用程序之外的清单(如MYAPP.EXE.MANIFEST)。
没关系,这有点道理。当我使用vs2008编译一个新项目
我认为某些C/C++包含文件包含#pragma,它添加了一个链接器命令,以便链接器生成清单。在C/C++包含文件中查找/ manifestdependency。这些应该会触发清单文件的创建。 – Patrick 2010-06-16 15:20:52
没有找到类似的东西。想知道制作一个新的vs2008项目并手动完成所有事情是否更好。 – mattias 2010-06-17 07:32:55
下面的测试程序:
#include <iostream>
#include <crtdefs.h>
void main()
{
std::cout << "Hello World" << std::endl;
}
使用这些命令(Visual Studio 2005中)编译:
cl /EHsc /MD /c test.cpp
link test.obj
创建可执行文件(TEST.EXE)和一个清单文件(TEST.EXE。 MANIFEST),看起来像这样:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
我没有尝试过这与VS2008,但这应该可能wo rk也是如此。
希望这足以让你开始。
仍然不适用于我的“迁移”项目。但是当我正在制作一个新的时候,我将重新制作整个解决方案。标记你的第一个答案,因为它基本上是答案。谢谢! – mattias 2010-06-17 15:01:26
我得到了相同的错误,只是使用mingw构建应用程序,然后加载了一个更复杂一点的DLL。 Windows正在使事情变得复杂一点,它需要一个简单的快速命令行编译Linux风格。 – jakobengblom2 2017-02-28 13:09:47