Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66

Ошибка линкера или что не так с libcurl

16.05.2016, 13:57. Показов 2385. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Установил libcurl по этому мануалу. Но при компиляции следующая ошибка:

1>------ Сборка начата: проект: ConsoleApplication8, Конфигурация: Debug Win32 ------
1>ConsoleApplication8.obj : error LNK2019: ссылка на неразрешенный внешний символ _curl_easy_init в функции _main
1>D:\c++\GL\ConsoleApplication8\Debug\Co nsoleApplication8.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Подскажите, что делать?

Добавлено через 3 минуты
Ах, да, код, который я компилировал
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
 
#include <curl/curl.h>
 
void main(int argc, char* argv[])
{
    CURL *curl = curl_easy_init();
    if (curl) printf("curl_easy_init() succeeded!\n");
    else fprintf(stderr, "Error calling curl_easy_init().\n");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2016, 13:57
Ответы с готовыми решениями:

Закралась ошибка или может я ваще что-то не так делаю?
Вывожу пока не на печать. просто в stringgrid хочу ответы. у меня по идее ответы, это три ряда значений (t1,t2 и t3). и когда я запускаю, у...

Что-то не так с OpenGL или головой, ошибка в один пиксель
Отрисовываю точку и прямоугольник в старой версии OpenGL через GLFW - прямоугольник получается ниже на пиксель. Вот код: В начале , я...

Что означает ошибка линкера "Could not open file. Error code 5"?
доброго времени суток ! установил сегодня Borland C++ Builder 6.0 решил проверить программу,программа самая простая и...

47
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
17.05.2016, 14:48  [ТС]
Кто-нить вообще смог его нормально поставить? Как вы сделали эту магию?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.05.2016, 16:59
У тебя проблема со сборкой самой библиотеки или с программой, которая её использует?
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
17.05.2016, 20:44  [ТС]
Думаю, даже не с сборкой, а с подключением
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.05.2016, 21:11
Здесь посмотри примеры: https://www.cyberforum.ru/blog... g1151.html
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
17.05.2016, 21:31  [ТС]
Я уже читал это. Ссылки не рабочие, в том архиве, что сейчас на сайте, нет таких либ. Блин, а на Ubuntu всё проще... Так и хочется перейти. Но сначала надо разобраться тут
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.05.2016, 21:35
Я знаю, что не рабочие. Но ты же говоришь, что собрал самостоятельно. А там примеры как пользоваться библиотекой. Не вижу у тебя #pragma.
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
18.05.2016, 14:43  [ТС]
А её использовать обязательно? В примерах такого не было
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.05.2016, 15:07
Ну как не было? В первом же примере есть.
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
18.05.2016, 21:11  [ТС]
Слушай, я тут намудрил и получил краш при запуске. В чём проблема? (Знаю, что код никакой, я ток учусь)
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
#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib,"libcurl_a.lib")  
#include<string.h>
#include <iostream> 
#include <stdlib.h>
 
 
 
using namespace std;
const size_t BUF_SIZE = 5000000;
char   wr_buf[BUF_SIZE + 1];
char splitR() {
    return 0;
}
 
int main(void)
{
//  memset(wr_buf, BUF_SIZE + 1, 0);
    CURL *curl;
    CURLcode res;
    string result;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=mrvladfff&fields=items/statistics&key=AIzaSyA_hWf9rKcC9jMYpIVc_FkDLkp0CJ84opg");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, result);
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        res = curl_easy_perform(curl);
 
 
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        char sstr[9999999] ;
 
        strcpy(sstr, result.c_str());
        const char separator[] = """; //Символы-разделители строки
        char *Ptr = NULL;
        Ptr = strtok(sstr, separator);
        
            Ptr = strtok(0, separator);
            
        
        cout << Ptr;
        curl_easy_cleanup(curl);
    } 
    cout << curl;
    
    return 0;
}
Ток чёт потерялся обратный слеш при вставке...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.05.2016, 21:43
26-я строка неправильная. В string не запишешь так. Смотри по той ссылке раздел "6. Загрузка в буфер."
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
18.05.2016, 22:08  [ТС]
Я пробовал уже. Если я буду использовать буфер, то фук-я strtok не будет работать
0
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
18.05.2016, 22:19
ну так у тебя ошибка линковки. Слинкуй с curl и всё ок будет. -lcurl
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
18.05.2016, 22:22  [ТС]
Уже решили эту проблему. Другая появилась
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.05.2016, 08:48
Цитата Сообщение от MRvladF Посмотреть сообщение
Если я буду использовать буфер, то фук-я strtok не будет работать
Сначала буфер, а дальше strtok(). Какая с ней проблема?
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
19.05.2016, 20:13  [ТС]
Что я делаю не так?
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
#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib,"libcurl_a.lib")  
#include<string.h>
#include <iostream> 
#include <stdlib.h>
 
 
 
using namespace std;
const size_t BUF_SIZE = 5000000;
char   wr_buf[BUF_SIZE + 1];
char splitR() {
    return 0;
}
 
int main(void)
{
    memset(wr_buf, BUF_SIZE + 1, 0);
    CURL *curl;
    CURLcode res;
    string result;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=mrvladfff&fields=items/statistics&key=AIzaSyA_hWf9rKcC9jMYpIVc_FkDLkp0CJ84opg");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, wr_buf);
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        res = curl_easy_perform(curl);
 
 
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        char sstr[9999999] ;
 
        strcpy(sstr, result.c_str());
        const char separator[] = """;
        char* Ptr = NULL;
        Ptr = strtok(sstr, wr_buf);
        
            Ptr = strtok(0, wr_buf);
            
        
        cout << Ptr;
        curl_easy_cleanup(curl);
    } 
    cout << curl;
    
    return 0;
}
При запуске краш. Компиляция нормальная

Добавлено через 8 минут
Ошибочка...
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
#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib,"libcurl_a.lib")  
#include<string.h>
#include <iostream> 
#include <stdlib.h>
 
 
 
using namespace std;
const size_t BUF_SIZE = 5000000;
char   wr_buf[BUF_SIZE + 1];
char splitR() {
    return 0;
}
 
int main(void)
{
    memset(wr_buf, BUF_SIZE + 1, 0);
    CURL *curl;
    CURLcode res;
    string result;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=mrvladfff&fields=items/statistics&key=AIzaSyA_hWf9rKcC9jMYpIVc_FkDLkp0CJ84opg");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, wr_buf);
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        res = curl_easy_perform(curl);
 
 
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        char sstr[9999999];
 
        strcpy(sstr, result.c_str());
        const char separator[] = """;
            char* Ptr = NULL;
        Ptr = strtok(wr_buf, separator);
 
        Ptr = strtok(wr_buf, 0);
 
 
        cout << Ptr;
        curl_easy_cleanup(curl);
    }
    cout << curl;
 
    return 0;
}
Но дело не меняет
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.05.2016, 22:46
А callback-функция где? Одного буфера мало.
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
20.05.2016, 09:43  [ТС]
Слушай, а не мог бы ты подкинуть ссылку где можно про буферы и про каллбэк функуию почитать поподробнее? Я гуглил, но там ничего нормального нет
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.05.2016, 11:01
https://www.cyberforum.ru/blog... g1151.html
Раздел "6. Загрузка в буфер."
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 66
22.05.2016, 15:51  [ТС]
Так должно быть?
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
#include <stdio.h>
#include <curl/curl.h>
#pragma comment(lib,"libcurl_a.lib")  
#include<string.h>
#include <iostream> 
#include <stdlib.h>
#include<string>
 
 
 
using namespace std;
const size_t BUF_SIZE = 500000000;
char   wr_buf[BUF_SIZE + 1];
static size_t write_data(char *ptr, size_t size, size_t nmemb, string* data)
{
    if (data)
    {
        data->append(ptr, size*nmemb);
        return size*nmemb;
    }
    else return 0;  // будет ошибка
}
 
int main(void)
{
    memset(wr_buf, BUF_SIZE + 1, 0);
    CURL *curl;
    CURLcode res;
    string result;
    string content;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername=mrvladfff&fields=items/statistics&key=AIzaSyA_hWf9rKcC9jMYpIVc_FkDLkp0CJ84opg");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        res = curl_easy_perform(curl);
        
 
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                curl_easy_strerror(res));
        char sstr[9999999];
 
        strcpy(sstr, result.c_str());
        const char separator[] = """;
            char* Ptr = NULL;
            //std::string str = "string";
            char *cstr = new char[content.length() + 1];
            strcpy(cstr, content.c_str());
            // do stuff
            
        Ptr = strtok(cstr, separator);
 
        Ptr = strtok(cstr, 0);
 
 
        cout << Ptr;
        curl_easy_cleanup(curl);
    }
    cout << curl;
    
    return 0;
}
Проблема всё та же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2016, 15:51
Помогаю со студенческими работами здесь

Libcurl + QT Creator - Какую версию libcurl качать для Windows
Пытаюсь подружить Curl и QT Creator Подскажите пожалуйста какую версию libcurl качать для Windows и как вообще их подружить :) ...

Ошибка линкера
Здравствуйте. Написал первую программу на ассемблере, &quot;Hello, world&quot;. CSEG segment org 100h Begin: mov ah,9 mov dx, offset...

Ошибка линкера
Здравствуйте! Подскажите пожалуйста в чем здесь дело? Объявил extern указатели в файле .h, а использую в main.cpp, и компилятор постоянно...

Ошибка линкера
Здравствуйте. Линкер выдает ошибки: Error: Unresolved external 'list&lt;int&gt;::~list&lt;int&gt;()' referenced from...

Ошибка линкера
Здравствуйте!!! Подскажите пожалуйста почему возникают ошибки линкера? // main.cpp #include &quot;parser.h&quot; int main() ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru