1

我将 Visual Studio 升级到 VS Professional 2012。

构建旧的 Visual C++ 项目导致错误:

链接:致命错误 LNK1158:无法运行“mt.exe”

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

4

2 回答 2

4

在链接器中将“生成清单”设置为否。这有助于

于 2013-09-29T16:49:25.197 回答
0

致命错误 LNK1158: cannot run 'mt.exe'中所述,有时关闭清单生成不是一种选择,因为实际上正在使用清单。在这一点上,一个人回来解决实际问题。

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

在一个明智的世界中,仅由错误/丢失目录引起的路径搜索错误会导致路径名被跳过,并且搜索继续到搜索路径中的下一个路径名。 ,相反,由于此错误而失败(当它尝试查找时link确实如此)。当您查看搜索路径(构建输出级别设置为“详细”)并看到包含的 SDK 目录就在其中时,这是非常令人困惑的,就像白天一样。似乎生活在一个不理智的​​世界里。☺</p> midlcl.exemt.exelink

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

于 2021-02-18T23:09:39.743 回答