Каковы отношения .lib и .obj друг другу и моему проекту в C++?

Как .lib и .obj файлы касаются друг друга? Какова их цель? .lib является просто набором .obj файлов? Раз так .obj's затем хранится в .lib создание ненужного .obj's?

7
задан mihai 18 October 2013 в 08:32
поделиться

3 ответа

Обычно файлы .obj относятся к объектным файлам . Это исходный файл в скомпилированном виде. Например, main.cpp и foo.cpp будут создавать main.obj и foo.obj .

Затем линкеры связывают их вместе, чтобы main.obj мог достигать функций, определенных в foo.obj , и наоборот. Компоновщик выведет ваш двоичный файл, который является .lib (или .a , или .exe , или .dll '' и т. Д.).

В общем, да, двоичный вывод ( .lib в вашем случае) представляет собой набор связанных файлов .obj . После того, как вы закончите компиляцию и захотите использовать библиотеку, вам нужно только связать другие программы с .lib . .obj - это промежуточные файлы, которые не нужны после завершения связывания.

11
ответ дан 6 December 2019 в 15:22
поделиться

Это зависит. Если файл .lib - статическая библиотека, то она более или менее просто коллекция файлов .obj. Если вы делаете или используете DLL, то файл .lib - это просто библиотека импорта, информация о том, какие символы доступны в соответствующей DLL.

2
ответ дан 6 December 2019 в 15:22
поделиться

Да, файл .lib - это просто коллекция файлов .obj. Ничего не было сделано с содержанием файлов .obj, лучшая аналогия - это архив .zip. Да, вы можете удалить файлы .obj после создания .lib, поскольку .lib содержит verbatim копию файлов .obj.

Остерегайтесь, если вы используете .lib для распространения вашего продукта, вы, как правило, приходится создавать 4 из них. Debug VS Release Build и два аромата CRT (/ MT VS / MD).

1
ответ дан 6 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: