【问题标题】:Why SWIG needs to generate manifest file with mt.exe?为什么 SWIG 需要使用 mt.exe 生成清单文件?
【发布时间】:2011-01-12 20:14:32
【问题描述】:

我正在测试 swig,我发现 SWIG 的 vcxproj 文件运行 mt.exe 来生成清单文件。

swig -c++ -csharp example.i
CL.exe ... -> compile the c++ source
link.exe ... -> generate dll
mt.exe ...
Csc.exe ...

这是干什么用的?我跳过了 mt.exe,但它似乎工作正常。

【问题讨论】:

    标签: c++ visual-studio manifest swig


    【解决方案1】:

    在 2010 年之前的 VS 版本中,这是一个非常大的交易。mt.exe 将自动生成的清单嵌入到可执行映像中,这对于获取存储在 Windows 并行缓存中列出的 DLL 依赖项很重要.没什么大不了的,它现在只嵌入了“我与 Vista 兼容”清单。并行缓存相当令人头疼,并在 VS2010 中被放弃。

    您应该检查构建目录中的 .manifest 文件并确保其中没有任何重要内容。就像启用视觉样式的通用对话框版本 6 条目一样。

    【讨论】:

      【解决方案2】:

      这与 SWIG 无关,而与 Visual C++ 如何生成它的二进制输出有关。

      mt.exe tool生成清单文件,它嵌入清单文件中已经存在的信息(我认为链接器会创建它)进入输出DLL。如果没有这个,输出 DLL 可能仅在清单文件与 DLL 位于同一目录中时才有效。

      (注意:我从来没有真正费心深入研究清单,其中究竟有什么信息以及是否一直需要其中的所有信息,但因为它只是在您创建 exe 或 dll 时自动完成VC++ 不应该立即需要打扰,除非有什么不工作:-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 2017-11-18
        • 1970-01-01
        • 2022-11-10
        • 1970-01-01
        相关资源
        最近更新 更多