LINUX.ORG.RU

dll, a, lib, o... -что есть что?


0

1

.dll .a .lib .o .obj .so ... - я запутался что есть что, и привязаны ли они к конкретным компиляторам и/или платформам. Помогите разобраться в этом вопросе чтобы уж раз и навсегда. И ещё вопрос: на стадии компоновки подключая к g++ библиотеки libxx.a, в строке к компоновщику указывается lxx.a - о есть l как бы заменяет lib. Но тогда как подключать библиотеки не начинающиеся на lib (напр. bla.a) и начинающиеся на l (напр. ltratata.a), неужели выход только в переименовании (bla.a -> libblabla.a; ltratata.a -> libltratata.a)?

Сильно не бейте, за нубские вопросы

> как подключать библиотеки не начинающиеся на lib (напр. bla.a) и начинающиеся на l (напр. ltratata.a)

через функцию dlopen(...) — можешь подключить что угодно :-) [ну всмысле я говорю про — shared objects]
(это в realtime уже)


но а чтоже касается стадии компилирования (compile time) — то хорошо бы называть файлы своими именами .. незачем делать путанницу из имён


это как если бы ты задал вопрос о том что ты хочешь писать программы на языке программирования Си , но тебе не нравитсья расширение *.c .. и «можноли переименовать расширение на *.ruby, но при этом компилировать как язык Си?» (можно ли это.. или нельзя... — но ЗАЧЕМ?)

:-)

user_id_68054 ★★★★★
()

.dll - динамические (как правило) библиотеки для винды.
.so - (shared objects) то же самое, но для *nix.

.lib - статические библиотеки для винды
.a (archive) - статические библиотеки для *nix

.o и .obj - объектники, первый как правило gccшный, второй как правило msvsшый

Учитывая, что в винде и в линуксе, например, разные форматы исполняемых файлов, привязаны ли, скажем, .dll и .so к конкретной платформе - это тебе домашнее задание на подумать.

на стадии компоновки подключая к g++ библиотеки libxx.a, в строке к компоновщику указывается lxx.a


компоновщику указывается -lxx, где -l - ключ аргумента (к имени файла отношения не имеет).

Но тогда как подключать библиотеки не начинающиеся на lib (напр. bla.a) и начинающиеся на l (напр. ltratata.a)


-lbla.a -lltratata.a

yoghurt ★★★★★
()

Но тогда как подключать библиотеки не начинающиеся на lib (напр. bla.a) и начинающиеся на l (напр. ltratata.a), неужели выход только в переименовании

указываешь имя файла напрямую без всяких ключей

Reset ★★★★★
()
Ответ на: комментарий от yoghurt

>>.lib - статические библиотеки для винды

Еще это может быть import library для dll.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от yoghurt

.a (archive) - статические библиотеки для *nix

Причем, это действительно архив, в котором собраны несколько файлов типа «*.o».

Deleted
()

>.dll .a .lib .o .obj .so ... - я запутался что есть что

Забей. Займись своими прямыми обязаностями.

Led ★★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.