2016-03-12 4 views
-1

Скажите, я хочу написать программу на C++ в Linux, и мне нужны некоторые конкретные библиотеки. Есть 2 способа получения этих библиотек:Некоторые сомнения в библиотеках

  1. Использование командной строки -> APT-получить установку библиотеки
  2. Загрузка и извлечение .zip или .tar файл с их сайта.

Теперь мои вопросы:

Для первого метода я видел библиотеки загружаются с APT-получить установку библиотеки и APT-получить установку библиотеки-DEV. Я знаю, что dev означает разработчика или разработчика, но в чем разница между установкой dev и не установкой dev? Что делает дев, точно?

Для второго метода мне нужно построить библиотеки с помощью компилятора? Поскольку я видел учебники, но используемая ОС обычно была Windows, мне нужно только создавать их в Windows, а не в Linux?

Кроме того, скажем, я могу использовать только второй метод для определенной библиотеки, а не первый. После извлечения, что я должен делать? Есть ли какой-либо стандартный способ установки библиотеки вручную или каждая библиотека отличается?

И наконец, когда я использую первый метод, где установлена ​​библиотека? Это/usr/local/lib,/usr/lib или/usr/include? Потому что, когда мне приходится ссылаться на эти библиотеки в настройках компоновщика, я пишу только их имя, а не путь, поэтому я предполагаю, что для библиотек уже существует путь по умолчанию.

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

+0

Вы хотите * построить * с помощью библиотеки? Тогда вам нужен пакет разработки. Пакет разработки обычно содержит * заголовочные файлы * и статические библиотеки. –

+0

@JoachimPileborg Я не знаю, хочу ли я построить библиотеку или нет. Вот что я пытаюсь понять. Когда мне нужно построить библиотеку? Зачем его строить? Я не очень опытен. –

+0

Не строить библиотеку, строить *** с *** библиотекой. Как я уже сказал, пакет разработки 'libsomename-dev' обычно содержит файлы заголовков, необходимые для использования библиотеки из вашего собственного источника. –

ответ

1

Второй метод очень широк, потому что он полностью зависит от того, как проектируется проект, включая используемую систему сборки и т. Д. При использовании управляемых пакетов дистрибутива ситуация становится немного более последовательной.

Если вы хотите разработать программу, которая использует библиотеку, вам нужен пакет library-dev, который обычно содержит файлы заголовков C/C++/etc...

Многие пакеты разработки соответствуют стандартным инструментам, которые помогают вашей системе сборки найти заголовки библиотек и двоичные файлы.

Например libcurl использует систему pkg-config поэтому его компоненту компилятора можно найти из командной строки, как это:

pkg-config libcurl --libs # print the library link flags 

Вы можете добавить, что к вашей Makefile (или любой другой системе сборки вы используете):

program: 
    g++ -o program program.cpp $(shell pkg-config libcurl --libs) 

Часть $(shell pkg-config libcurl --libs) добавляет правильные флаги компилятора для связи с библиотекой.

Не все разработчики упакованных используют pkg-config. Некоторые приходят со своими инструментами (например, mysql_config), в то время как другие позволяют догадываться и пытаться понять все это для себя (глядя на вас libclang).

Смежные вопросы