Статическая библиотека Windows с функциями по умолчанию - PullRequest
4 голосов
/ 24 февраля 2011

Я хотел бы создать статическую библиотеку (.lib) в Windows, которую можно использовать в последующих сборках в качестве «резервной копии» для неопределенных функций.

Например, допустим, у меня есть файл foobar.lib, который имеет определения для:

FOO
BAR

, и у меня есть другая программа, которая определяет только FOO и должна быть встроена в DLL, которая должна экспортировать FOO и BAR. Я хочу использовать foobar.lib для автоматического экспорта определения по умолчанию BAR в полученную DLL (и игнорировать определение FOO в foobar.lib).

Я попытался отправить файл foobar.lib компоновщику, но получил ошибку с несколькими определенными символами (предполагается, что / FORCE переопределит это, но с серьезными предупреждениями о том, что он, вероятно, не будет работать должным образом). Я также попытался использовать /NODEFAULTLIB:foobar.lib, но затем он полностью игнорирует библиотеку и говорит, что BAR не определено.

Я почти на 100% уверен, что есть способ сделать это, потому что я использую приложение, которое делает это (Abaqus), чтобы позволить пользователям писать плагины и не должен определять весь необходимый экспорт для плагина DLL. И они не используют параметр / FORCE.

1 Ответ

2 голосов
/ 24 февраля 2011

Я нашел решение (не уверен, что это единственное или лучшее решение).

Я пытался определить FOO и BAR в foobar.lib, используя один объектный файл (foobar.OBJ).Если я разделю его на foo.obj и bar.obj, а затем использую их для создания foobar.lib, компоновщик может эффективно игнорировать соответствующие файлы .obj.

Таким образом, краткий ответ: одна функция на объектный файлдля статической библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...