Как отключить создание библиотеки импорта? - PullRequest
4 голосов
/ 16 декабря 2009

Я создаю COM DLL в Visual Studio. Компоновщик генерирует библиотеку импорта для DLL. Мне не нужна библиотека для импорта.

Есть ли способ сказать компоновщику не генерировать его?

Ответы [ 2 ]

4 голосов
/ 29 октября 2018

Девять лет спустя, это может быть бесполезно для ОП, но может оказаться полезным для других, приходящих в поисках решения.

LINK.EXE поддерживает параметр /NOIMPLIB, который предотвращает создание библиотеки импорта, даже при наличии подпрограммы __declspec(dllexport) в связанных DLL или EXE.

Перейдите в Свойства проекта, откройте раздел Linker. Самый последний вариант - Command Line. Выберите это, и внизу есть место для добавления дополнительных параметров компоновщику. Введите /NOIMPLIB в поле редактирования, сохраните и примените, и это предотвратит создание файла .lib.

- Правка -

К сожалению, хотя это не позволяет создать файл .lib, опытным путем я обнаружил, что файл .exp все еще создается. Я бы подал отчет об ошибке в MS, но, основываясь на прошлом опыте их команды разработчиков инструментов, попытка получить что-то вроде этого будет сродни попытке свернуть валун в гору.

0 голосов
/ 20 марта 2013

Этот ответ кажется решением: https://stackoverflow.com/a/15214141/660440

"Использование файла .def, содержащего ваши экспортированные функции, помеченные ключевым словом PRIVATE, сообщит компоновщику, что нужно пропустить размещение символа в вашей библиотеке импорта."

...