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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
HatoL
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 3
07.10.2012, 06:59     Использование сторонних библиотек #1
Всем салют! Я новичок на этом форуме, а также в языке Си++. У меня возникли вопросы.

Дело в том, что до Си++ я кодил на 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, где можно найти описание любой функции, похожие функции, функции из этой же категории и прочее. Причем на русском. И это официальный сайт. Весьма удобно и надежно. Есть ли что-нибудь подобное по Си++, желательно тоже на русском?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 06:59     Использование сторонних библиотек
Посмотрите здесь:

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

Текущее время: 03:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru