Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16

Curl и Eclipse

15.02.2020, 16:00. Показов 3305. Ответов 27

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Я пишу проект в винде 7, в Eclipse для orange pi с установленной Debian. Связываюсь через gdb.
Пытаюсь подключить к своему проекту эту замечательную библиотеку. Для этого раздобыл все бинарные файлы в виде
curllib
-include
--curl
---curl.h
---curlver.h
---и др
-lib
--libcurl.a
--libcurl.dll.a

В самом затмении добавил:
Properties>>C/C++ Build>>Settings>>GCC C++ Compiler >> Includes >> -I путь к curllib>include
Properties>>C/C++ Build>>Settings>>GCC C++ Linker >> Libraries >> -L путь к curllib>lib
Properties>>C/C++ Build>>Settings>>GCC C++ Linker >> Libraries >> -l просто curl
Собственно curl.h он находит, прототипы функций видит, но вот при компилировании выдаёт
main.cpp:24: undefined reference to `curl_global_init'
То есть он не видит сами функции в libcurl.a и я уже совсем не понимаю куда копать. Он реализацию ни одной функции curl не видит. И это не только к этой функции относится, он так на все ругается.
Сейчас удалил всё лишнее, есть только эта библиотека и всё
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2020, 16:00
Ответы с готовыми решениями:

Авторизация curl (различие между curl и ajax запросами)
Есть ли различие в передаче данных в json формате через curl и ajax? Я хочу написать запрос, который будет авторизировать пользователя на...

Curl команду превратить в php curl
команда: curl -s -F widget=$WIDGET -F secret=$SECRET -F amouser=$AMOUSER -F amohash=$AMOHASH -F domain=amocrm.ru -F widget=@$file...

Как сохранить консольную прогу в Eclipse, чтобы запускать без Eclipse
Как сохранить написанное консольное приложение в Eclipse так, чтобы я мог запустить его без Eclipse.

27
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
19.02.2020, 11:42
Либы с суффиксом .a при подключении через Linker -> Libraries не работают.
Их надо подключать через Linker -> Miscellaneous как Other Object
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
19.02.2020, 20:20  [ТС]
А какие либы подключаются через Linker -> Libraries ?

Это не помогло. Я подключил как Other Object, пробовал в разных вариациях, пробовал даже в
Properties>>C/C++ Build>>Settings>>GCC C++ Compiler >> Miscellaneous >> Other flags
прописать -lcurl. Это тоже не помогло, ошибка ни куда не делась
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
20.02.2020, 09:11
А какие либы подключаются через Linker -> Libraries ?
*.lib

А если в Preprocessor >> Defined symbols прописать CURL_EXTERN ?
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
20.02.2020, 10:07  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
*.lib
А каким образом?
Если добавить в Libraries >> -L путь к этой библиотеке, а в
Libraries >> -l название библиотеки без lib вначале и .lib в конце, то компилятор выкидываешь ошибку...

Цитата Сообщение от Annemesski Посмотреть сообщение
А если в Preprocessor >> Defined symbols прописать CURL_EXTERN ?
Ни чего не изменилось, по прежнему ругается на встроенные функции
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
20.02.2020, 11:28
А каким образом?
Если добавить в Libraries >> -L путь к этой библиотеке, а в
Libraries >> -l название библиотеки без lib вначале и .lib в конце, то компилятор выкидываешь ошибку...
.lib и .a - это разные, хоть и похожие форматы библиотек.

У меня студия, и я использую libcurl.lib которая не static, а import для связки с dll. Собирал сам из исходников.

Думаю Вам тоже стоит скачать исходники curl'a и собрать либу самому.
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
20.02.2020, 11:50  [ТС]
Это я уже понял. В затмении всё, видимо, несколько по другому, чем в студии
Я собирал её и сам, и скачивал с сайта собранные, пока эффект один и он мне не нравится. Спасибо за помощь, пойду дальше ломать голову и буду ждать ещё ответов, вряд ли уж я первый, кто с таким столкнулся в eclipse
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
20.02.2020, 12:18
Kerravitarr, попробуем с самого начала разобраться... Судя по сообщению компилятора он не видит даже прототипов curl-а, ведь если бы не было видно только реализации, то была бы ошибка линковщика "undefined reference". Покажите как подключаете заголовки curl-a? В смысле где и как прописываете includ-ы?
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
20.02.2020, 13:59  [ТС]
Прототипы он видит. Если нажать на любой метод, то он уходит сразу в хэдер.
Могу сразу код показать, чего уж там.
C++
1
2
3
4
5
6
7
#include <curl/curl.h>
 
int main(int argc, char **argv){
    CURL *curl;
    CURLcode res;
    curl_global_init(CURL_GLOBAL_ALL);
}
Этого ему хватает.
Что и где я линковал, я уже показывал
Цитата Сообщение от Kerravitarr Посмотреть сообщение
-include
--curl
---curl.h
---curlver.h
---и др
-lib
--libcurl.a
--libcurl.dll.a
В самом затмении добавил:
Properties>>C/C++ Build>>Settings>>GCC C++ Compiler >> Includes >> -I путь к curllib>include
Properties>>C/C++ Build>>Settings>>GCC C++ Linker >> Libraries >> -L путь к curllib>lib
Properties>>C/C++ Build>>Settings>>GCC C++ Linker >> Libraries >> -l просто curl
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
20.02.2020, 14:32
Properties>>C/C++ Build>>Settings>>GCC C++ Linker >> Libraries >> -l просто curl
Я так понимаю этот параметр аналогичен студийному Linker->Input->Additional dependecies - в нем должно быть прописано точное имя файла библиотеки, в Вашем случае "libcurl.a"
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
20.02.2020, 14:39  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
"libcurl.a"
Нет, в Eclipse надо указывать название библиотеки без lib и суффикса .a, он потом сам прописывать при сборке это в опцию -l, что логично, и получается -L"\...\curllib\lib" -lcurl
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
20.02.2020, 15:00
Нет, в Eclipse надо указывать название библиотеки без lib и суффикса .a, он потом сам прописывать при сборке это в опцию -l, что логично, и получается -L"\...\curllib\lib" -lcurl
выглядит странно...
....
думаю
....
должно получаться зависимость собирается самой клипсой по типу -L + -l + ".a", это значит что -L у Вас должно быть "\...\curllib\lib\lib"
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
20.02.2020, 15:54  [ТС]
Цитата Сообщение от Annemesski Посмотреть сообщение
-L у Вас должно быть "\...\curllib\lib\lib"
Цитата Сообщение от Kerravitarr Посмотреть сообщение
curllib
-include
-lib
--libcurl.a
--libcurl.dll.a
Там в папке curllib\lib уже и лежат все библиотеки.
Да я знаю, что странно. До этого у меня не было таких проблем, у других таких проблем тоже не наблюдается, я же сначала в сети искал решение, а только потом дошёл сюда
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.02.2020, 05:29
а у вас есть лог компиляции? то бишь строка навроде g++ main.cpp -Lcurllib/lib -lcurl ....
и какой системой сборки вы пользуетесь?
в Eclipse есть какая-то своя или, например CMake/ninja/etc? или Eclipse просто компилятор запускает самостоятельно.
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
21.02.2020, 08:13  [ТС]
Конкретно то что вы спрашиваете, для включений:
Code
1
arm-linux-gnueabihf-g++ -std=c++0x -DCURL_EXTERN -I"E:\curllib\include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"scr/ServerVK.d" -MT"scr/ServerVK.o" -o "scr/ServerVK.o" "../scr/ServerVK.cpp"
Для библиотек:
Code
1
arm-linux-gnueabihf-g++ -L"E:\curllib\lib" -o "Sofia Kempel"  ./scr/ServerI2C.o ./scr/ServerVK.o  ./main.o  E:/curllib/lib/libcurl.dll.a E:/curllib/lib/libcurl.a -lcurl.dll -lcurl
Это уже само затмение делает, а вот весь, если поможет
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
08:04:22 **** Incremental Build of configuration Debug for project Sofia Kempel ****
make all 
'Building file: ../scr/ServerVK.cpp'
'Invoking: Cross G++ Compiler'
arm-linux-gnueabihf-g++ -std=c++0x -DCURL_EXTERN -I"E:\curllib\include" -O0 -g3 -Wall -c -fmessage-length=0 -lcurl -MMD -MP -MF"scr/ServerVK.d" -MT"scr/ServerVK.o" -o "scr/ServerVK.o" "../scr/ServerVK.cpp"
In file included from ../scr/ServerVK.cpp:10:0:
E:\curllib\include/curl/curl.h:128:0: warning: "CURL_EXTERN" redefined [enabled by default]
<command-line>:0:0: note: this is the location of the previous definition
../scr/ServerVK.cpp:43:2: warning: "/*" within comment [-Wcomment]
../scr/ServerVK.cpp: In constructor 'ServerVK::ServerVK()':
../scr/ServerVK.cpp:15:8: warning: unused variable 'curl' [-Wunused-variable]
../scr/ServerVK.cpp:16:11: warning: unused variable 'res' [-Wunused-variable]
'Finished building: ../scr/ServerVK.cpp'
' '
'Building target: Sofia Kempel'
'Invoking: Cross G++ Linker'
arm-linux-gnueabihf-g++ -L"E:\curllib\lib" -o "Sofia Kempel"  ./scr/ServerI2C.o ./scr/ServerVK.o  ./main.o  E:/curllib/lib/libcurl.dll.a E:/curllib/lib/libcurl.a -lcurl.dll -lcurl
./scr/ServerVK.o: In function `ServerVK':
C:\Users\Terran\Documents\Eclipse C++\Sofia Kempel\Debug/../scr/ServerVK.cpp:19: undefined reference to `curl_global_init'
collect2: ld returned 1 exit status
make: *** [Sofia Kempel] Error 1
"make all" terminated with exit code 2. Build might be incomplete.
 
08:04:23 Build Failed. 2 errors, 4 warnings. (took 867ms)
У меня три файла, основной и два класса. в "ServerVK" я и пытаюсь это реализовать, ну вы догадались зачем.
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
21.02.2020, 09:12
arm-linux-gnueabihf-g++ -L"E:\curllib\lib" -o "Sofia Kempel" ./scr/ServerI2C.o ./scr/ServerVK.o ./main.o E:/curllib/lib/libcurl.dll.a E:/curllib/lib/libcurl.a -lcurl.dll -lcurl
Может все таки должно быть
Code
1
-llibcurl.dll -llibcurl
?
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
21.02.2020, 09:57  [ТС]
Это то точно нет.
Цитата Сообщение от Annemesski Посмотреть сообщение
-llibcurl.dll -llibcurl
На всё подобное он сразу отвечает
Code
1
/../arm-linux-gnueabihf/bin/ld.exe: cannot find -llibcurl
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.02.2020, 10:47
Kerravitarr, это действительно странно.
а вы libcurl сами собирали или скачали откуда-то?
если сами, то собирали этим же компилятором и как, а если скачали, то откуда.
Цитата Сообщение от Annemesski Посмотреть сообщение
Может все таки должно быть
нет.
0
 Аватар для Kerravitarr
1 / 1 / 0
Регистрация: 12.02.2020
Сообщений: 16
21.02.2020, 10:56  [ТС]
Пробовал собрать сам, но сейчас эти файлы куда то затерялись
Пользуюсь официальной версией с https://curl.haxx.se/download.html
Качал собранную версию для вин 32

Версия библиотеки 7.68.0
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
21.02.2020, 11:16
Kerravitarr, а есть у тебя файлик curl.exe?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2020, 11:16
Помогаю со студенческими работами здесь

Curl not a valid cUrl на windows
Есть такая функция. private function curl_send($url) { ob_start(); $ch = curl_init($url); curl_exec($ch); curl_close($ch); ...

Eclipse. Какое сочетание клавиш или как открыть только что закрытый в Eclipse файл?
Я уже задавал подобный вопрос и мне дали на него ответ Alt+стрелка влево. Решение довольно-таки практичное, но случаются ситуации, когда я...

Eclipse + AVR Eclipse + WINAVR
Начал изучать программирование AVR на Cи, для разработки проектов выбрал istypsi в связке с WinAVR. Установил, работает нормально, вроде...

Чем отличается Eclipse IDE for Java EE Developers от Eclipse IDE for Java Developers?
чем отличается Eclipse IDE for Java EE Developers и Eclipse IDE for Java Developers? и какую лучше качать для разработки под андроид? ...

curl
добрый день. Подскажите пожалуйста как на С++ с помощью курла можно зайти на сфтп сервер имея пароль и логин от него, посмотреть инфу о...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru