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

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

Войти
Регистрация
Восстановить пароль
 
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
#1

Добавить библиотеку в CodeBlocks - C++

12.01.2016, 23:36. Просмотров 1544. Ответов 7
Метки нет (Все метки)

Как добавить библиотеку в проект CodeBlocks? К примеру, cURL.
Открываю в выбранном проекте Build options, прописываю директорию с хедерами в Search Directory - compiler, директорию с lib в Search Directory - linker. Добавляю сами .a файлы в Linker Setting.
А ему все ровно, пишет что не видит хедеров.

||=== Build: Debug in cURL TEST (compiler: GNU GCC Compiler) ===|
D:\Programming\C++\Projects\cURL TEST\main.cpp|4|fatal error: curl/curl.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Код который пытаюсь запустить:
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//подключаем необходимые заголовочные файлы
#include <string>
#include <iostream>
#include "curl/curl.h"
 
using namespace std;
 
//объявляем буфер, для хранения возможной ошибки, размер определяется в самой библиотеке
static char errorBuffer[CURL_ERROR_SIZE];
 
//объялвяем буфер принимаемых данных
static string buffer;
 
//функция обратного вызова
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
  //переменная - результат, по умолчанию нулевая
  int result = 0;
  //проверяем буфер
  if (buffer != NULL)
  {
    //добавляем к буферу строки из data, в количестве nmemb
    buffer->append(data, size * nmemb);
    //вычисляем объем принятых данных
    result = size * nmemb;
  }
  //вовзращаем результат
  return result;
}
 
//главная функция
int main(void)
{
    setlocale(0, "");
    //необходимые CURL объекты
    CURL *curl;
    CURLcode result;
    //инициализируем curl
    curl = curl_easy_init();
    //проверяем результат инициализации
    if (curl)
    {
      //задаем все необходимые опции
      //определяем, куда выводить ошибки
      curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
      //задаем опцию - получить страницу по адресу [url]http://cyberforum.ru[/url]
      curl_easy_setopt(curl, CURLOPT_URL, "cyberforum.ru");
      //указываем прокси сервер
      //curl_easy_setopt(curl, CURLOPT_PROXY, "proxy:8080");
      //задаем опцию отображение заголовка страницы
      curl_easy_setopt(curl, CURLOPT_HEADER, 1);
      //указываем функцию обратного вызова для записи получаемых данных
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
      //указываем куда записывать принимаемые данные
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
      //запускаем выполнение задачи
      result = curl_easy_perform(curl);
      //проверяем успешность выполнения операции
      if (result == CURLE_OK)
      //выводим полученные данные на стандартный вывод (консоль)
        cout << buffer << "\n";
      else
        //выводим сообщение об ошибке
        cout << "Ошибка! " << errorBuffer << endl;
  }
  //завершаем сессию
  curl_easy_cleanup(curl);
  return 0;
}


Пробовал с другими библиотеками (boost), то же самое. Хедеры не видятся.

Если просто кидать хедеры в директорию проекта, работает конечно, но с большими библиотеками так не выйдет да и вообще.

В чем причина? Что делать?
0
Миниатюры
Добавить библиотеку в CodeBlocks   Добавить библиотеку в CodeBlocks   Добавить библиотеку в CodeBlocks  

Добавить библиотеку в CodeBlocks  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2016, 23:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Добавить библиотеку в CodeBlocks (C++):

Как создать библиотеку в codeblocks? - C++
Здравствуйте, распишите новичку, пожалуйста, как создать библиотеку и потом ее использовать, т.е. закинуть её как понимаю в MinGw и...

Как добавить ресурсы(картинку) в CodeBlocks - C++
Ребята, пожалуйста, помогите не могу добавить картинку в opengl(codeblocks)!

не могу добавить библиотеку - C++
Здраст народ! Скачал недавно библиотеку hashlibpp.h ,а если быть более точным, то целую папку с различными файлами и теперь не знаю как...

Как добавить в код библиотеку <time.h> - C++
Привет всем! есть код для задания как добавить библиотеку &lt;time.h&gt; чтобы код работал со временем #include &lt;conio.h&gt; #include...

Добавить в проект библиотеку для работы с LPT - C++
Доброго дня ! Решил поиграться с LPT портом. http://www.kernelchip.ru/pcports/PS002.php столкнулся с такой проблемой. в...

DirectSound. Как правильно, и какую библиотеку следует добавить? - C++
Ребята, нужна ваша помощь. MVS 2010 выдаёт следующее 1&gt;DXUTsound.obj : error LNK2019: unresolved external symbol __imp__mmioClose@8...

7
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
12.01.2016, 23:41 #2
Папку include пропиши. Или в коде делай просто:
C++
1
#include "curl.h"
1
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
13.01.2016, 00:51  [ТС] #3
Цитата Сообщение от nord_v Посмотреть сообщение
Папку include пропиши
А на последнем скрине у меня она разве не прописана? Или что имеется ввиду?

Цитата Сообщение от nord_v Посмотреть сообщение
Или в коде делай просто:
C++Выделить код
1
#include "curl.h"
А так работает. Спасибо!

Добавлено через 13 минут
А, хотя нет, не совсем работает. Если хедер сам ссылается еще куда-то в форме #include <foo/bar.cpp> , то опять-таки выдает ту же ошибку.

Ну, к примеру, прикрутил я boost, делаю #include "asio.hpp", а в самом asio.hpp есть #include <boost/asio/async_result.hpp>, и на этой строке выдает указанную в начале поста ошибку. Что тут делать?
0
Mesteriis
374 / 157 / 40
Регистрация: 08.08.2015
Сообщений: 1,121
Завершенные тесты: 1
13.01.2016, 00:55 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от NikBond Посмотреть сообщение
Ну, к примеру, прикрутил я boost, делаю #include "asio.hpp", а в самом asio.hpp есть #include <boost/asio/async_result.hpp>, и на этой строке выдает указанную в начале поста ошибку. Что тут делать?
в скрине не совсем видно, вы указали где лежат сами реализации?
и
Цитата Сообщение от NikBond Посмотреть сообщение
#include "asio.hpp"
так это не подключают. вам надо указывать полный путь начиная с папки буст #include <boost/asio.hpp> и в настройках линковшика указывать путь к папке boost
1
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
13.01.2016, 01:15 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от NikBond Посмотреть сообщение
А на последнем скрине у меня она разве не прописана?
Не она, у тебя папка curl прописана, а не папка include.

Добавлено через 2 минуты
Цитата Сообщение от NikBond Посмотреть сообщение
Ну, к примеру, прикрутил я boost, делаю #include "asio.hpp", а в самом asio.hpp есть #include <boost/asio/async_result.hpp>, и на этой строке выдает указанную в начале поста ошибку. Что тут делать?
Прописать ту папку, где лежит папка boost.

Добавлено через 1 минуту
Цитата Сообщение от NikBond Посмотреть сообщение
Если хедер сам ссылается еще куда-то в форме #include <foo/bar.cpp> , то опять-таки выдает ту же ошибку.
Прописать ту папку, где лежит папка foo.
1
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
13.01.2016, 01:19  [ТС] #6
Цитата Сообщение от nord_v Посмотреть сообщение
Не она, у тебя папка curl прописана, а не папка nclude.
D:\Programming\C++\Libraries\curl\include\curl
И вот тут уже хедеры лежат.

Ну вынял я хедеры на директорию выше, указал D:\Programming\C++\Libraries\curl\include
А толку? Ничего не поменялось-то

Так что прописана, насколько я понимаю.
0
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
13.01.2016, 01:23 #7
Теперь нужно:
Цитата Сообщение от NikBond Посмотреть сообщение
Так что прописана, насколько я понимаю.
Если прописал, то прописана, а до этого не была прописана.
Цитата Сообщение от NikBond Посмотреть сообщение
А толку? Ничего не поменялось-то
Делай правильно - поменяется. И без претензий, или будешь сам разбираться. В коде инклуд заменил? Теперь нужно:
C++
1
#include "curl/curl.h"
Пересборку делал?
0
NikBond
2 / 2 / 2
Регистрация: 21.07.2015
Сообщений: 36
13.01.2016, 01:24  [ТС] #8
Цитата Сообщение от nord_v Посмотреть сообщение
Прописать ту папку, где лежит папка foo.
А, вот оно что! Спасибо, ошибка была в этом. Я просто саму foo прописывал, и не сообразил, о чем вы говорите.
0
13.01.2016, 01:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2016, 01:24
Привет! Вот еще темы с ответами:

Code::Bloks C++, В чем разница "codeblocks-12.11-setup.exe" и "codeblocks-12.11mingw-setup.exe" - C++
Захожу на сайт хочу скачать codeblocks чтобы на нем изучать си++ , толька н могу понять разницы там для виндовс есть четыре файла вот они ...

Как добавить библиотеку GLAUX.lib в Visual Studio - C++
Привет! Нужно добавить библиотечку OpenGL, которая называется GLAUX, но не знаю как. Куда какие файлы добавить, где что написать чтоб...

Подскажите библиотеку.наверно библиотеку - C++
VS2012 не хочет считать числа например 654367^534, 54266^34 вообщем любые большие числа я так понял даже long double не справляется с этой...

Codeblocks! - C++
Дело в том что я сижу под линуксом и пользуюсь Codeblocks. Я не как не могу разобраться, как там писать программы типа &quot;космос&quot;, т.е....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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