Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2014, 13:01   #1
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию Компиляция и привязка libcURL.

Доброго времени суток форумчане. Постигаю азы С, столкнулся с такой проблемой. Хочу прикрутить к проекту на С либу cURL. Скачал с оф. сайта исходники, распаковал в папочку, с командной строки выполняю mingw32-make mingw32, на что получаю: "*** No rule to make target 'mingw32'. Stop." Никогда раньше компиляцией из исходников не занимался. Кодил раньше на FASM, по этому до сих пор путаюсь с понятиями статическая линковка, динамическая и т.д. Не понимаю, что за файлы с расширением .a и нужны ли файлы .lib для MinGW, ибо в папочке с компилятором, фалов с таким расширением не нашел, хотя знаю, что в Visual Express они используются. Помогите разобраться. Заранее благодарю.
FULEREN вне форума Ответить с цитированием
Старый 27.12.2014, 18:16   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

команда make ищет файл "Makefile" и выполняет команды в нем. Сообщение говорит вам о том, что такого файла нет. Если его нет, то зачем вы вообще запускали make?

Кстати, make никак с Си не связана - это просто утилита для сборки проектов (на любых языках), да и не только (вообще для автоматизации чего угодно можно применять). Наверняка большие FASM-проекты собираются make тоже.

Скинь выхлоп команды типа dir (чтобы отобразить струтктуру файлов проекта, который ты собираешь).
И скриншот скинь, ты точно make из "правильного" каталога запускал?
rrrFer вне форума Ответить с цитированием
Старый 27.12.2014, 18:43   #3
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

Большое спасибо, проблема решена.

Последний раз редактировалось FULEREN; 27.12.2014 в 18:53.
FULEREN вне форума Ответить с цитированием
Старый 27.12.2014, 19:54   #4
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

Дабы не создавать новую тему, задам еще один вопрос. Как в mingw можно статически слинковать libcurl с проектом? Ибо таскать dll с собой как то не очень хочется. Попытался сделать так, но ничего не вышло:
Код:
C:\MinGW\bin\gcc -std=c99 -s -Os -O2 C:\Users\8086\Desktop\C\test\test.c -lkernel32 -luser32 -DCURL_STATICLIB -lcurl -lwsock32 -o C:\Users\8086\Desktop\C\test\test.exe
Process started >>>
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(connect.o):(.text+0xb1f): undefined reference to `WSAIoctl@36'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x14c): undefined reference to `_imp__ldap_err2stringA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x18d): undefined reference to `_imp__ldap_msgfree'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x1b6): undefined reference to `_imp__ldap_unbind_s'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x483): undefined reference to `_imp__ldap_set_optionA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x4e2): undefined reference to `_imp__ldap_simple_bind_sA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x511): undefined reference to `_imp__ldap_err2stringA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x55c): undefined reference to `_imp__ldap_set_optionA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x58a): undefined reference to `_imp__ldap_initA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x5e9): undefined reference to `_imp__ldap_search_sA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x606): undefined reference to `_imp__ldap_err2stringA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x69f): undefined reference to `_imp__ldap_first_entry'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x6dc): undefined reference to `_imp__ldap_get_dnA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x76c): undefined reference to `_imp__ldap_first_attributeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x799): undefined reference to `_imp__ldap_get_values_lenA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x95f): undefined reference to `_imp__ldap_value_free_len'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x9a6): undefined reference to `_imp__ldap_memfreeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x9c3): undefined reference to `_imp__ldap_next_attributeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x9dc): undefined reference to `_imp__ldap_memfreeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0x9f5): undefined reference to `_imp__ber_free'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0xa0a): undefined reference to `_imp__ldap_next_entry'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0xa31): undefined reference to `_imp__ldap_value_free_len'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0xa3e): undefined reference to `_imp__ldap_memfreeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0xa4b): undefined reference to `_imp__ldap_memfreeA'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o):(.text+0xa68): undefined reference to `_imp__ber_free'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libcurl.a(ldap.o): bad reloc address 0x180 in section `.rdata'
collect2.exe: error: ld returned 1 exit status
FULEREN вне форума Ответить с цитированием
Старый 28.12.2014, 06:13   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Большое спасибо, проблема решена.
Ты расскажи как именно она решена, может кому-нибудь пригодится.

Цитата:
Попытался сделать так, но ничего не вышло:
По ошибке видно же, что он не может найти какие-то символы, т.е. где-то он видит что есть функция (или не функция) с именем _imp__ber_free, но найти ее реализацию он не может.

Я не уверен, но смотрю вот сюда:
Цитата:
/../../libcurl.a(ldap.o).text+0xa68): undefined re
и думаю что можно хотя бы попробовать в опциях компилятору передать -ldap или типа того.

Добавил:
А вот загуглил, правильно я думаю, не хватает ему ldap, но прилинковать его нужно с -lwldap32 или типа того.
rrrFer вне форума Ответить с цитированием
Старый 28.12.2014, 11:44   #6
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

И так, make не выходил, потому что я очень сильно тупанул. Я совсем забыл, что указываю на папку в которой была вложенная папка, содержащая файл "Makefile". Т.е естественно при таком раскладе make ничего не видел, поправил путь - собралось. rrrFer, по вашему совету добавил -lwldap32, не собралось выдавало ошибку
Код:
 undefined reference to `WSAIoctl@36'
, загуглил и выяснил, что нужно добавить -lws2_32. После всего этого файл собрался и вроде как работает. Большое спасибо.
FULEREN вне форума Ответить с цитированием
Старый 28.12.2014, 19:31   #7
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Спрашивай еще если что
rrrFer вне форума Ответить с цитированием
Старый 07.02.2015, 09:29   #8
FULEREN
Пользователь
 
Регистрация: 23.03.2012
Сообщений: 56
По умолчанию

Апаю тему, ибо столкнулся с аналогичной проблемой привязки libcurl в RAD Studio C++ Builder XE6. Как можно статически скомпилить библиотеку с проектом, а точнее как правильно её подключить?
FULEREN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С, Linux, libcurl, coockie, login asmars C/C++ Сетевое программирование 26 30.09.2014 00:06
libcurl. Авторизация vk.com halcyon Общие вопросы C/C++ 2 25.11.2013 23:08
LIbCurl linux lazarus ВИННИ ПУX Lazarus, Free Pascal, CodeTyphon 0 10.05.2011 10:50
libcurl + HTTP = CURLE_UNSUPPORTED_PROTOCOL KOLANICH C/C++ Сетевое программирование 0 19.02.2011 11:26
libcurl.NET badgo Общие вопросы .NET 2 31.07.2010 17:33