Управление библиотекой
Режим по умолчанию для LIB — создание или изменение библиотеки объектов COFF. LIB выполняется в этом режиме, если не указать /EXTRACT
(скопировать объект в файл) или /DEF
(создать библиотеку импорта).
Чтобы создать библиотеку из объектов и (или) библиотек, используйте следующий синтаксис:
LIB
[options...
]files...
Эта команда создает библиотеку из одного или нескольких входных файлов. files
Это files
могут быть файлы объектов COFF, 32-разрядные файлы объектов OMF или существующие библиотеки COFF. LIB создает одну библиотеку, содержащую все объекты в указанных файлах. Если входной файл является 32-разрядным файлом объекта OMF, lib преобразует его в COFF перед созданием библиотеки. LIB не может принять 32-разрядный объект OMF, который находится в библиотеке, созданной 16-разрядной версией LIB. Сначала необходимо использовать 16-разрядную библиотеку LIB для извлечения объекта; затем вы можете использовать извлеченный файл объекта в качестве входных данных для 32-разрядной библиотеки LIB.
По умолчанию LIB называет выходной файл с помощью базового имени первого файла объекта или библиотеки и расширения .lib
. Выходной файл помещается в текущий каталог. Если файл уже существует с тем же именем, выходной файл заменяет существующий файл. Чтобы сохранить существующую библиотеку, используйте /OUT
параметр, чтобы указать имя выходного файла.
Следующие параметры применяются к созданию и изменению библиотеки:
/LIBPATH:
dir
Переопределяет путь библиотеки среды и задает для него значение dir
. Дополнительные сведения см. в описании параметра LINK /LIBPATH
.
/LIST
Отображает сведения о выходной библиотеке для стандартных выходных данных. Выходные данные можно перенаправить в файл. Вы можете использовать /LIST
для определения содержимого существующей библиотеки, не изменяя ее.
/NAME:
filename
При создании библиотеки импорта указывает имя библиотеки filename
DLL, для которой создается библиотека импорта.
/NODEFAULTLIB
Удаляет одну или несколько библиотек по умолчанию из списка библиотек, которые он выполняет поиск при разрешении внешних ссылок. Дополнительные сведения см. в разделе /NODEFAULTLIB
.
/OUT:
filename
Переопределяет имя выходного файла по умолчанию и заменяет его filename
на . По умолчанию выходные библиотеки создаются в текущем каталоге с базовым именем первой библиотеки или файла объектов в командной строке и расширением .lib
.
/REMOVE:
object
Omits, указанный object
из выходной библиотеки. LIB создает выходную библиотеку, объединяя все объекты (будь то в файлах объектов или библиотеках), а затем удаляя все объекты, заданные с /REMOVE
.
/SUBSYSTEM:
{CONSOLE
| EFI_ROM
| | NATIVE
POSIX
| WINDOWS
| | | WINDOWSCE
EFI_APPLICATION
EFI_BOOT_SERVICE_DRIVER
| EFI_RUNTIME_DRIVER
}[,#[.#]]
Сообщает операционной системе, как запустить программу, созданную путем связывания с выходной библиотекой. Дополнительные сведения см. в описании параметра LINK /SUBSYSTEM
.
Параметры LIB, указанные в командной строке, не учитывает регистр.
Вы можете использовать LIB для выполнения следующих задач управления библиотеками:
Чтобы добавить объекты в библиотеку, укажите имя файла для существующей библиотеки и имена файлов для новых объектов.
Чтобы объединить библиотеки, укажите имена файлов библиотек. Можно добавлять объекты и объединять библиотеки с одной командой LIB.
Чтобы заменить элемент библиотеки новым объектом, укажите библиотеку, содержащую объект-член, который нужно заменить, и имя файла для нового объекта (или библиотеки, содержащей ее). Если объект с тем же именем существует в нескольких входных файлах, LIB помещает последний объект, указанный в команде LIB, в выходную библиотеку. При замене члена библиотеки обязательно укажите новый объект или библиотеку после библиотеки, содержащей старый объект.
Чтобы удалить члена из библиотеки, используйте параметр /REMOVE. LIB обрабатывает все спецификации /REMOVE после объединения всех входных объектов независимо от порядка командной строки.
Примечание.
Вы не можете удалить элемент и извлечь его в файл на одном шаге. Сначала необходимо извлечь объект-член с помощью /EXTRACT
, а затем снова запустить LIB с помощью /REMOVE
. Это поведение отличается от 16-разрядной библиотеки LIB (для библиотек OMF), предоставляемых в других продуктах Майкрософт.