Почему SWIG необходимо создать файл манифеста с mt.exe? - PullRequest
0 голосов
/ 12 января 2011

Я тестирую swig и обнаружил, что файл vcxproj SWIG запускает mt.exe для генерации файла манифеста.

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

Для чего это нужно?Я пропустил mt.exe, но, похоже, он работает нормально.

Ответы [ 2 ]

1 голос
/ 12 января 2011

Это было очень большое дело в версиях VS до 2010 года. Mt.exe внедряет автоматически сгенерированный манифест в исполняемый образ, что важно для получения зависимостей DLL, которые хранятся в перечисленном в кэше бок о бок Windows. , Больше ничего особенного, теперь он содержит только манифест «Я совместим с Vista». Кэширование бок о бок было довольно большой головной болью и было оставлено для VS2010.

Вы должны проверить файл .manifest в каталоге сборки и убедиться, что в нем нет ничего важного. Как и в записи версии 6 общих диалогов, которая включает визуальные стили.

1 голос
/ 12 января 2011

Это не имеет ничего общего с SWIG, но с тем, как Visual C ++ генерирует его двоичный вывод.

Инструмент mt.exe не генерирует файл манифеста, он встраивает информацию из файла манифеста, который уже существует (я думаю, что компоновщик создал бы его) в выходной DLL. Без этого выходная DLL может работать только тогда, когда файл манифеста располагается вдоль DLL в том же каталоге.

(Примечание: я никогда не задумывался о том, чтобы копать глубже в отношении манифестов, какая именно информация там находится и нужна ли вся информация там постоянно, но так как все это делается автоматически, когда вы создаете exe или dll в VC ++ не нужно сразу беспокоиться, если что-то не работает: -)

...