Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
HatoL
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 3
#1

Использование сторонних библиотек - C++

07.10.2012, 06:59. Просмотров 2412. Ответов 3
Метки нет (Все метки)

Всем салют! Я новичок на этом форуме, а также в языке Си++. У меня возникли вопросы.

Дело в том, что до Си++ я кодил на PHP, причем весьма удачно, как я считаю. Так вот, в этом PHP для использования стороннего расширения достаточно было просто заинклудить главный файл с исходным кодом, в котором инклудились остальные "кусочки" и в конце концов объявлялись нужные для работы функции и классы.

А вот в Си++ я так понял этот вариант не катит. Решил я использовать в своей программе библиотеку libcurl (http://ru.wikipedia.org/wiki/cURL, http://curl.haxx.se). В разделе Download есть много-много вариантов, для разных компиляторов и платформ. Ах да, сама библиотека написана на Си. Я правильно понял, что если бы изначально библиотека была написана на Си++, то тогда можно было бы без проблем скачать исходные коды и просто их заинклудить? Зачем все эти готовые скомпилированные варианты?

Чтобы можно было использовать функциональность курла в MSVS 2012, я сделал следующее:

1. Сделал #include <curl\curl.h> в начале программы (перед этим скопировал необходимые инклуды курла в папку с остальными)
2. В настройках проекта, в разделе Linker (Компоновщик) -> Input (Ввод) добавил файл libcurl.lib (поставлялся в варианте для MSVC). Перед этим также скопировал файл в папку C:\Program Files (x86)\Windows Kits.

Насчет первого мне более менее ясно. Хотя все равно непонятки насчет этих .h файлов, что они содержат и почему у них не .cpp расширение. А второе зачем? Что оно значит? И тем более мне непонятно, почему после второго пункта мне еще потребовалось засунуть файл libcurl.dll в папку с готовым .exe.

А если я захочу куда-нибудь выложить свою программу в виде исходных текстов? Программисту, читающему мой исходник, для корректной работы надо будет засунуть include файлы в папку с компилятором, кинуть .lib и .dll файлы. А библиотека может быть не одна. Можно ли как-то все это собрать в одну кучу? Проясните пожалуйста!

P. S. у PHP очень хороший сайт с документацией http://www.php.net, где можно найти описание любой функции, похожие функции, функции из этой же категории и прочее. Причем на русском. И это официальный сайт. Весьма удобно и надежно. Есть ли что-нибудь подобное по Си++, желательно тоже на русском?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 06:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование сторонних библиотек (C++):

Подключение сторонних библиотек - C++
Я пишу в Visual Studio и в некоторый проектах использую SDL. У меня есть папка с библиотеками и инклудами SDL, я ее подключаю в...

Установка сторонних библиотек - C++
Здравствуйте. Мне нужна библиотека по нейросетям. В интернете нашел вот такую библиотеку. http://www.nongnu.org/libann/doc/installing.html ...

Графика без сторонних библиотек - C++
Интересует следующий вопрос: можно ли без сторонних библиотек, чистым С++ вывести пиксели разных цветов или их массивы? К тому же очень...

Почему включение сторонних библиотек не рекомендуется? - C++
Почему нежелательно включать в программу под linux ну например ncurses.h (сторонняя популярная библиотека)? Почему нужно включать только...

Скрытие warning сторонних статических библиотек в g++ - C++
Здравствуйте! Я статически подключаю библиотеку (liblibrary.a), и тут компилятор gnu g++ выдает мне предупреждение на одно из мест в...

Отключение предупреждений при подключении сторонних библиотек - C++
Доброго времени суток! возник вопрос - чисто теоретический - допустим, что я подключил библиотеку, криво-написанную, но работающую,...

3
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
07.10.2012, 08:09 #2
Цитата Сообщение от HatoL Посмотреть сообщение
Хотя все равно непонятки насчет этих .h файлов, что они содержат и почему у них не .cpp расширение.
Заголовочные файлы содержат прототипы (объявления) функций, дабы компилятор знал, что где-то в проекте такая функция есть. Файлы исходного кода определяют эти функции. Т. е. если подключить заголовок, но не добавить lib или cpp, то компилятор все это проглотит, однако будет ругаться компоновщик (linker) на отсутствующие функции.
Цитата Сообщение от HatoL Посмотреть сообщение
Есть ли что-нибудь подобное по Си++, желательно тоже на русском?
http://cplusplus.com/reference
Учите английский.
0
HatoL
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 3
07.10.2012, 08:39  [ТС] #3
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
Заголовочные файлы содержат прототипы (объявления) функций, дабы компилятор знал, что где-то в проекте такая функция есть. Файлы исходного кода определяют эти функции. Т. е. если подключить заголовок, но не добавить lib или cpp, то компилятор все это проглотит, однако будет ругаться компоновщик (linker) на отсутствующие функции.
Пока что все понятно... А зачем тогда .dll? Компилятор же из .lib файла берет реализацию функций, почему он их не компилирует вместе с остальным кодом в один .exe? За ссылку спасибо, действительно очень неплохой ресурс. Чтобы потом не спрашивать, можно еще какие-нибудь или этот имеет самую полную информацию?
0
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
07.10.2012, 12:14 #4
Цитата Сообщение от HatoL Посмотреть сообщение
А зачем тогда .dll? Компилятор же из .lib файла берет реализацию функций, почему он их не компилирует вместе с остальным кодом в один .exe?
Не знаю, по идее, должен.
Цитата Сообщение от HatoL Посмотреть сообщение
Чтобы потом не спрашивать, можно еще какие-нибудь или этот имеет самую полную информацию?
http://ya.ru
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 12:14
Привет! Вот еще темы с ответами:

Как узнать частоту звука без сторонних библиотек - C++
кто нибудь знает как в работать со звуком без сторонних библиотек? мне нужно чтобы во время проигрывания звука можно было узнать его...

Работа нескольких сторонних библиотек под одним интерфейсом - C++
Здравствуйте! Хочу реализовать библиотеку, которая будет предоставлять интерфейс к некоему абстрактному действию (e. g. расшифровка,...

Как на с++(юникс) отправить http post запрос без сторонних библиотек - C++
Ответ сервера не важен, главное - послать пост-запрос. boost, libcurl и прочее использовать нельзя. Подскажите, как это проще всего...

Как определять какие ключи компиляции необходимы при использовании сторонних библиотек? - C++
Захотелось мне скомпилировать программу, использующую Zlib, но компилятор ругается undefined reference такая-то функция. Значит ему надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
07.10.2012, 12:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru