Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как использовать сторонние библиотеки? / 25 сообщений из 25, страница 1 из 1
17.05.2017, 16:12
    #39454815
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
При работе мне надо использовать zip- архивы (запаковывать/распаковывать).

Решил попробовать libarchive: скачал их исходники, распаковал и получил папочку на диске с кучей файликов.

А что дальше делать?

Много книжек посвящено работе с классическим С++, а вот как использовать сторонние библиотеки- можно только догадываться (в моей Ubuntu уже проинсталенна куча библиотек, о которых я совсем ничего не знаю). Есть какой-то мануал как использовать всё богатство сторонних библиотек?
...
Рейтинг: 0 / 0
17.05.2017, 16:46
    #39454847
ermak.nn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
...
Рейтинг: 0 / 0
17.05.2017, 16:53
    #39454857
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
ermak.nnAlekseySQL,

https://github.com/libarchive/libarchive/wiki/BuildInstructions

Дело не в установке пакета: после его сборки и установки я получу еще один пакет в системе, где их уже куча. В том числе установлены другие библиотеки по работе с архивами. Хочется научиться работать со всеми библиотеками системы (в том числе и этим чудным libarchive).
...
Рейтинг: 0 / 0
17.05.2017, 16:57
    #39454864
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Тогда читай азы программирования и компиляции программ на С/С++. Как проходит компиляция,
что такое linker и зачем он нужен. В общем, весь путь от исходного текста до исполняемого
файла.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.05.2017, 16:59
    #39454866
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQL,
ну, с Qt ты же как то работаешь)) это ведь тоже сторонняя библиотека ))
...
Рейтинг: 0 / 0
17.05.2017, 17:09
    #39454877
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Dimitry SibiryakovТогда читай азы программирования и компиляции программ на С/С++. Как проходит компиляция,
что такое linker и зачем он нужен. В общем, весь путь от исходного текста до исполняемого
файла.


Не понятно, как знание связывание и компиляции поможет мне в изучении установленных в системе библиотек и способов их использования.
...
Рейтинг: 0 / 0
17.05.2017, 17:12
    #39454880
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
egorychAlekseySQL,
ну, с Qt ты же как то работаешь)) это ведь тоже сторонняя библиотека ))

Я проинсталил Qt Creator, который предлагает удобный интерфейс работы с библиотеками Qt. Не думаю, что другие библиотеки установленные в системе можно будет применять используя тот же самый набор действий.
...
Рейтинг: 0 / 0
17.05.2017, 17:14
    #39454884
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLНе понятно, как знание связывание и компиляции поможет мне в изучении установленных в
системе библиотек и способов их использования.

Связывание с ними и есть способ их использования. Разве это не очевидно из самого их
названия "библиотеки подпрограмм"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.05.2017, 17:17
    #39454888
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLНе думаю, что другие библиотеки установленные в системе можно будет применять используя тот же самый набор действий.и тем не менее, это так) другого набора действий не существует.
указываешь компилятору место нахождения заголовочных файлов, линкеру - место нахождения объектных файлов, включаешь в свой исходный файл необходимый хидер, вызываешь функции, описанные в нём, вуаля.
Это если совсем коротко))
...
Рейтинг: 0 / 0
17.05.2017, 17:22
    #39454896
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLЯ проинсталил Qt Creator, который предлагает удобный интерфейс работы с библиотеками Qt. Не думаю, что другие библиотеки установленные в системе можно будет применять используя тот же самый набор действий.
Значит, достаточно в .pro файле твоего проекта написать
Код: sql
1.
LIBS *= -larchive


Возможно, в INCLUDEPATH тоже придётся что-нибудь добавить.
Но, всё-таки я бы тебе советовал почитать про сам процесс компиляции и линковки, как советовали выше, чтобы понять что происходит под капотом, потому что под него тебе придётся очень часто залазить. А вообще, начни с GNU Make, тогда сразу всё прояснится.
...
Рейтинг: 0 / 0
18.05.2017, 08:05
    #39455105
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Нашел подборку книг по программированию в среде Unix/Linux:


Изучу и отпишусь по тому, что мне поможет.
...
Рейтинг: 0 / 0
18.05.2017, 16:52
    #39455539
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQL,

Как бы использование библиотеки мало чем отличается от использования кода не в библиотеке.

Подключаешь в исходный модуль где собираешься использовать заголовочный файл с нужными объявлениями

Используешь в коде

При компиляции ничего дополнительного не нужно

При сборке (линковке) нужно указать, что ты будешь использовать дополнительную библиотеку. Как это делать -- зависит от используемого компилятора и build-системы, но в целом линкеру просто указывается ещё одним параметром нужная библиотека.

Конкретно на Linux (и Ubuntu в частности) и GCC/g++ нужно добавить один или два параметра линкера:


-l<имя библиотеки> , где <имя библиотеки> -- название библиотеки без префикса lib и суффиксов версии и типа файла. Например, для использования библиотеки libgzip-42.2.2.so нужно указывать -lgzip

-L<дополнительный путь к каталогу, где лежит библиотека> -- параметр как правило указывать НЕ НУЖНО, так как системные библиотеки всегда ставятся в системные каталоги библиотек, которые линкер понимает и без этого. Если параметр указывать нужно, его надо задавать ДО параметра -l
...
Рейтинг: 0 / 0
18.05.2017, 16:53
    #39455541
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLDimitry SibiryakovТогда читай азы программирования и компиляции программ на С/С++. Как проходит компиляция,
что такое linker и зачем он нужен. В общем, весь путь от исходного текста до исполняемого
файла.


Не понятно, как знание связывание и компиляции поможет мне в изучении установленных в системе библиотек и способов их использования.

Непосресдственно.
Потому что это оно и есть.
...
Рейтинг: 0 / 0
18.05.2017, 17:11
    #39455553
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
MasterZivAlekseySQLпропущено...
Не понятно, как знание связывание и компиляции поможет мне в изучении установленных в системе библиотек и способов их использования.

Непосресдственно.
Потому что это оно и есть.

Как работать с библиотеками- понятно. Не понятно вот что:
1. Какие есть уже установленные в системе библиотеки, что они позволяют сделать и где прочитать по ним хелп.
2. Какие библиотеки я могу потенциально использовать при разработке для Linux: когда я устанавливаю какой- нибудь пакет из репозитория, то он тащит за собой ворох библиотек. Как разработчик этого пакета узнал, что есть такие-то полезные для его разработки библиотеки?
3. Есть какой-то перечень библиотек (желательно с описанием) безотносительно к Linux и его репозиториям? Библиотек типа Boost и libarchive?

Все это озадачивает меня, потому что в системе уже установлена куча архиваторов + компрессоров, а я по Windows- традиции пытаюсь создать мега- программу, которая умеет делать все на свете. Хочу переложить часть функций на проверенные временем пакеты, создав небольшой менеджер уже присутствующих утилит.
...
Рейтинг: 0 / 0
18.05.2017, 22:56
    #39455713
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Вот интересная статья:
...
Рейтинг: 0 / 0
19.05.2017, 14:56
    #39456201
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Как работать с библиотеками- понятно. Не понятно вот что:
1. Какие есть уже установленные в системе библиотеки,


ls /usr/lib

или

apt cache search или как его там...

что они позволяют сделать и где прочитать по ним хелп.


man libxxx


2. Какие библиотеки я могу потенциально использовать при разработке для Linux: когда я устанавливаю какой- нибудь пакет из репозитория, то он тащит за собой ворох библиотек. Как разработчик этого пакета узнал, что есть такие-то полезные для его разработки библиотеки?


ИНТЕРНЕТ!
или из книг...

3. Есть какой-то перечень библиотек (желательно с описанием) безотносительно к Linux и его репозиториям? Библиотек типа Boost и libarchive?

Ну буст есть на сайте буста, GNU библиотеки на сайте GNU, POSIX -- на сайте посикса (если есть такой), и так далее.
Вопрос комплексный, не решается указанием одного источника.


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


Ну, многие тебя сказали бы, что это -- не Linux (unix) way...
...
Рейтинг: 0 / 0
19.05.2017, 21:18
    #39456497
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
MasterZiv,

Спасибо, я опасался, что нет какого-то ресурса, предоставляющего единый информационный каталог. Анализировать маны всех пакетов, чтобы создать общую картину- не очень удобное решение. А если учесть, что часть пакетов не установлено, то и неполное.

Интернет содержит кучу устаревшей информации (поэтому практически нет книг по вопросу Linux- пакетов). Так что информация в бОльшем количестве случаев просто нерабочая.

Во всяком случае, спасибо за разъяснения.
...
Рейтинг: 0 / 0
20.05.2017, 14:38
    #39456625
Common Lisp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLПри работе мне надо использовать zip- архивы (запаковывать/распаковывать).

Решил попробовать libarchive: скачал их исходники, распаковал и получил папочку на диске с кучей файликов.

в моей Ubuntu уже проинсталенна куча библиотек, о которых я совсем ничего не знаю)
Нахрена качать откуда-то исходники libarchive, когда можно поставить пакет libarchive-dev?
...
Рейтинг: 0 / 0
20.05.2017, 14:46
    #39456628
Common Lisp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
MasterZivКонкретно на Linux (и Ubuntu в частности) и GCC/g++ нужно добавить один или два параметра линкера:

-l<имя библиотеки> , где <имя библиотеки> -- название библиотеки без префикса lib и суффиксов версии и типа файла. Например, для использования библиотеки libgzip-42.2.2.so нужно указывать -lgzip

-L<дополнительный путь к каталогу, где лежит библиотека> -- параметр как правило указывать НЕ НУЖНО, так как системные библиотеки всегда ставятся в системные каталоги библиотек, которые линкер понимает и без этого. Если параметр указывать нужно, его надо задавать ДО параметра -l

Код: plaintext
1.
user@host $ apt-file find libarchive.pc
libarchive-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/libarchive.pc
Сейчас вот, в 2k17, при наличии .pc-файла, только и остаётся, что руками писать -l<имя библиотеки> и -L<дополнительный путь к каталогу, где лежит библиотека>...
...
Рейтинг: 0 / 0
20.05.2017, 18:38
    #39456651
Common Lisp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
AlekseySQLЕсть какой-то мануал как использовать всё богатство сторонних библиотек?Можешь начать отсюда https://people.freedesktop.org/~dbn/pkg-config-guide.html , т.к. для libarchive есть .pc-файл, в пакете libarchive-dev.
1-й вопрос в FAQ там как раз для тебя.
...
Рейтинг: 0 / 0
20.05.2017, 22:53
    #39456719
AlekseySQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Common Lisp,

Спасибо!
...
Рейтинг: 0 / 0
22.05.2017, 14:56
    #39457405
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Common LispСейчас вот, в 2k17, при наличии .pc-файла, только и остаётся, что руками писать -l<имя библиотеки> и -L<дополнительный путь к каталогу, где лежит библиотека>...

Неофит должен же знать основы...
...
Рейтинг: 0 / 0
22.05.2017, 17:35
    #39457598
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Common LispMasterZivКонкретно на Linux (и Ubuntu в частности) и GCC/g++ нужно добавить один или два параметра линкера:

-l<имя библиотеки> , где <имя библиотеки> -- название библиотеки без префикса lib и суффиксов версии и типа файла. Например, для использования библиотеки libgzip-42.2.2.so нужно указывать -lgzip

-L<дополнительный путь к каталогу, где лежит библиотека> -- параметр как правило указывать НЕ НУЖНО, так как системные библиотеки всегда ставятся в системные каталоги библиотек, которые линкер понимает и без этого. Если параметр указывать нужно, его надо задавать ДО параметра -l

Код: plaintext
1.
user@host $ apt-file find libarchive.pc
libarchive-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/libarchive.pc
Сейчас вот, в 2k17, при наличии .pc-файла, только и остаётся, что руками писать -l<имя библиотеки> и -L<дополнительный путь к каталогу, где лежит библиотека>...Если у тебя есть .pc и правильно настроенный pkg-config, то руками надо писать:
Код: plaintext
1.
$ gcc/g++ -c `pkg-config --cflags libarchive` my.c/my.cpp
$ gcc/g++ `pkg-config --libs libarchive` my.o
"Сейчас вот, в 2k17" люди обленились и даже узнав о сущестовавнии .pc файлов не могут погуглить что это такое.
...
Рейтинг: 0 / 0
22.05.2017, 19:09
    #39457654
Common Lisp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
White Owl,

Зачем ты мне это объясняешь?
...
Рейтинг: 0 / 0
23.05.2017, 12:43
    #39457971
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать сторонние библиотеки?
Common LispAlekseySQLПри работе мне надо использовать zip- архивы (запаковывать/распаковывать).

Решил попробовать libarchive: скачал их исходники, распаковал и получил папочку на диске с кучей файликов.

в моей Ubuntu уже проинсталенна куча библиотек, о которых я совсем ничего не знаю)
Нахрена качать откуда-то исходники libarchive, когда можно поставить пакет libarchive-dev?
он просто не знал, что хидеры в отдельных dev-пакетах идут
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как использовать сторонние библиотеки? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]