MS C++ 2010 和 mspdb100.dll

Posted

技术标签:

【中文标题】MS C++ 2010 和 mspdb100.dll【英文标题】:MS C++ 2010 and mspdb100.dll 【发布时间】:2011-02-28 17:44:56 【问题描述】:

Microsoft 的 C++ 编译器和链接器似乎与 mspdb100.dll 有着奇怪的关系。当从 IDE 运行时,编译器和链接器当然可以正常工作。从命令行运行任何一个时,都会出现错误。

没问题,我找到了 DLL 并将其复制到目录中。现在编译器工作正常,但链接器死了。

我可以通过将“%VS10%\Common7\IDE”添加到我的 PATH 来解决问题,但由于各种原因(性能、系统纯度、OCD 等),我不想这样做。为什么这个设置如此棘手,我还能做些什么来解决它?

【问题讨论】:

另见:***.com/questions/1125537/… Ctrl+c 对话框,所以在谷歌搜索时可以找到这个条目:--------------- cl.exe - 无法找到组件 --------------- 由于找不到 mspdb100.dll,此应用程序无法启动。重新安装应用程序可能会解决此问题。 - - - - - - - - - - - - - - 好的 - - - - - - - - - - - ----- 【参考方案1】:

尝试在您当前的 shell 中运行path\to\VC\bin\vcvars32.bat首先。这应确保您的命令行设置与 IDE 设置匹配。

这不是永久性修复——每次启动新 shell 时都需要这样做。

您可能还可以找到某种方法将 .bat 中的所有内容永久添加到环境变量中,但是....就像您问的那样,为什么 MS 安装还没有这样做?

【讨论】:

批处理文件告诉您环境变量 VS100COMNTOOLS 的定义为空白(或没有定义)。这是批处理文件的外部。有没有安装VS2010? 另一份关于 VS100COMNTOOLS 未定义的报告(不同的上下文)***.com/questions/4045780/…【参考方案2】:

将 Microsoft Visual Studio 10.0\Common7\IDE 添加到您的路径中,此问题将不再存在。您无需每次都运行这个愚蠢的批处理文件即可构建。

【讨论】:

从原始问题“我可以通过将“%VS10%\Common7\IDE”添加到我的 PATH 来解决问题,但是由于各种原因 [...],我不想这样做那个。” 在我的构建脚本中,我刚刚添加了一行:set "PATH=%PATH%;%VS100COMNTOOLS%\..\IDE" 迈克尔,因为这是解决问题的唯一方法,所以它是唯一真正的答案。 vcvars32.bat 文件只是为您执行此操作。【参考方案3】:

我在安装 Microsoft Visual Studio 2010 Express 时注意到,在开始菜单的“Microsoft Visual Studio 2010 Express”文件夹下,有一个指向“Visual Studio 命令提示符 (2010)”的链接,它设置了所有必要的打开时的环境变量。这样您就不必编辑 PATH 变量。

此快捷方式运行以下内容:

%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86

如果使用快捷方式不方便,也许您可​​以通过研究这个 .bat 文件的作用来学习一些有用的东西?

【讨论】:

【参考方案4】:

我遇到了同样的错误,这是因为我们在 x64 系统上安装了 vs2010 x86 版本...

打开两个文件夹:

C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

你会找到两个cvtres.exe。右键单击,选择属性,然后选择详细信息。删除旧版本,cmake 就可以正常工作了。 希望对您有所帮助。

感谢“zhoudongao”@http://bbs.csdn.net/topics/390121452?page=1#post-394768226。

【讨论】:

【参考方案5】:

我知道这有点过时了,但如果有人正在寻找一种让编译器从命令行运行的方法;这是我为使其运行所做的工作。

我正在使用 Win7 32 位和 Visual Studio 2010。我在 C:\Windows 中创建了一个小批处理文件。以管理员身份在 C:\Windows 中打开 cmd 提示符,然后键入以下内容:

copy con cl.bat

@"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32" %1 %2 %3 %4 %5 %6
@"C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\cl" %1 %2 %3 %4 %5 %6

然后按 f6 并再次回车。

显然,您将使用的路径是安装 Visual Studio 的安装路径。

您现在可以从 Windows 中的任何位置或目录获得有效的命令行编译器。要对此进行测试,请转到桌面并以管理员身份打开 cmd 提示符;我更喜欢使用 Ctrl+Shift 并右键单击,然后在此处选择打开命令提示符。 在命令提示符下键入“cl”(不带引号)并按 Enter。您将看到一条消息“设置环境以使用 Microsoft Visual Studio 2010 x86 工具”

键入“cl”并再次按回车键,您将获得编译器信息。你已经准备好编译了。

享受吧!

【讨论】:

【参考方案6】:

也许它会帮助某人......

我通过添加解决了这个问题

PATH += %PATH_TO_VS_IN_YOUR_SYSTEM%/Common7/IDE;

nvcc.profile

当然,%PATH_TO_VS_IN_YOUR_SYSTEM% 是您系统中 Visual Studio 的实际路径。

【讨论】:

【参考方案7】:

旧的,但可能仍然有效:

对我来说,“C:\Windows\System32”不知何故从 PATH 变量中丢失了。

将缺少的文件夹添加到路径解决了这个错误。另见VS2010 command prompt gives error : Cannot determine the location of the VS Common Tools folder

【讨论】:

【参考方案8】:

如果您尝试直接从 windows cmd.exe 运行工具,那么您需要通过运行将为您设置环境的 vcvars32.bat 文件来设置环境。相反,您可以运行 Visual Studio 命令提示符,它将自动运行 vcvars32.bat。如果你还有这个问题,那肯定是著名的路径变量问题。

确保环境中的 "path" 变量添加了 "c:\windows\system32\" 值,因为 .bat 文件需要它来配置 VC 工具。

这个问题和类似问题通常是因为在机器上安装了许多开发平台,这可能会改变路径变量。

检查这个.. https://schrievkrom.wordpress.com/2011/01/25/error-cannot-determine-the-location-of-the-vs-common-tools-folder/

【讨论】:

以上是关于MS C++ 2010 和 mspdb100.dll的主要内容,如果未能解决你的问题,请参考以下文章

dumpbin-link-mspdb60

请参阅 MS Visual Studio 2010 中 GUI C++ 应用程序的控制台输出

MS Visual Studio 2010 C++ 预处理器 - 如果函数在宏中定义并在其他地方调用,未定义时是不是有任何开销

MS C++(CL)编译的可执行文件在 Windows 2000 上不起作用 [重复]

视觉 C++ 2010 SP1

我正在使用 MS Visual C++ Express 为 C++ 寻找一个简单的套接字接口