在编译VS 2012 C++项目时无法运行"mt.exe"致命错误



我将Visual Studio升级到VS Professional 2012。

构建旧的视觉C++项目会导致错误:

链接:致命错误LNK1158:无法运行"mt.exe">

将带有 mt.exe 的文件夹放入路径中没有帮助。
目前我在文件夹 C:\Program Files (x86(\Microsoft SDK\Windows\v7.1A\Bin\x64 中使用 mt.exe

链接器中将"生成清单"设置为"否"。 这有帮助

正如致命错误 LNK1158:无法运行"mt.exe"中所述,有时关闭清单生成不是一种选择,因为实际上正在使用清单。在这一点上,人们回到解决实际问题。

实际问题的一个原因是错误的可执行搜索路径。我个人曾经在项目文件中有一个$(ExecutablePath)设置(项目设置中的VC ++目录→可执行文件目录(,该设置产生了一个可执行搜索路径,其中一个路径名不是有效的目录名称。路径名在其目录名组件之一中有一个冒号(由前缀....到另一个变量引起,该变量恰好包含带有驱动器号的绝对路径名,而不是预期的相对路径名(。

在合理的世界中,仅由错误/丢失的目录引起的路径搜索错误会导致路径名被跳过,并且搜索继续搜索路径中的下一个路径名。 相反,link 会因此错误而失败(就像midl在尝试查找cl.exe时一样(。当人们查看搜索路径(构建输出级别设置为"详细"(并看到包含mt.exe的 SDK 目录就在其中时,这是非常令人困惑的,就像白天一样简单。看来link并没有生活在一个理智的世界里。 ☺

当然,修复是为了纠正错误的项目设置。

最新更新