2016-06-02 2 views
0

Я пытаюсь скомпилировать следующие в коде: блоки как C++ проектаCodeBlocks Libcurl связи Выпуск Windows 7

   #include <curl/curl.h> 

       int main(void) 
       { 
         char * result; 
         CURL *curl; 
         CURLcode res; 
         curl = curl_easy_init(); 
         if(curl) { 
          curl_easy_setopt(curl, CURLOPT_URL, "http://google.com/"); 

          res = curl_easy_perform(curl); 
          curl_easy_cleanup(curl); 
         } 
         return 0; 
       } 

Я установил мой линкер, как так: http://puu.sh/peeYr/9cb79897e5.png

И все я получаю это этот массовый спам ошибок.

   ||=== Clean: Debug in nettest (compiler: GNU GCC Compiler) ===| 
       ||=== Build: Debug in nettest (compiler: GNU GCC Compiler) ===| 
       U:\Main\Code\nettest\main.cpp||In function 'int main()':| 
       U:\Main\Code\nettest\main.cpp|5|warning: unused variable 'result' [-Wunused-variable]| 
       U:\Main\Code\nettest\main.cpp|7|warning: variable 'res' set but not used [-Wunused-but-set-variable]| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(easy.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(easy.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(easy.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| more undefined references to `[email protected]' follow| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(select.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(asyn-thread.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(url.o):(.text.unlikely+0x265)||undefined reference to `idna_to_ascii_lz'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(url.o):(.text.unlikely+0x26c)||undefined reference to `stringprep_locale_charset'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(url.o):(.text.unlikely+0x2d8)||undefined reference to `idna_to_unicode_lzlz'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(url.o):(.text.unlikely+0x2fc)||undefined reference to `tld_check_lz'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(url.o):(.text.unlikely+0x382)||undefined reference to `stringprep_check_version'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(sendf.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       U:\Main\Code\Libs\curl\lib\libcurl.a(connect.o)|| undefined reference to `[email protected]'| 
       ||More errors follow but not being shown.| 
       ||Edit the max errors limit in compiler options...| 
       ||=== Build failed: 50 error(s), 2 warning(s) (0 minute(s), 3 second(s)) ===| 

Затем я попытался связь с libcurldll.a, а затем в libcurl.dll из папки BIN, который скомпилированная однако когда дело дошло до запуска он сказал, что «libcurl.dll отсутствует с вашего компьютера».

Я скачал http://curl.haxx.se/dlwiz/?type=lib&os=Win32&flav=-

и я использую следующий компилятор. http://puu.sh/pefvQ/0ed7876316.png

Это очень раздражает, и я не могу понять, почему в этой библиотеке нет документации, особенно если такие проблемы кажутся безудержными. (Я пробовал решения нескольких SO вопросов, таких как Unresolved symbols when linking a program using libcurl

и

Adding static libcurl to Code::Blocks IDE ) Однако безрезультатно. Как я могу это исправить? Или есть более простая и лучше документированная библиотека, которую я могу использовать вместо этого? Поскольку все, что я хочу сделать, это выполнить запрос HTTP-запроса.

+0

Похоже, вы забыли добавить 'ws2_32' или аналогичные библиотекам. Curl тянет в curl, но curl нуждается в библиотеке winsock для вашей версии окон. – user4581301

+0

Я не верю, что у меня есть их в настоящее время. Как мне получить/связать их с моим проектом? – user3407675

+0

с winsock DLL поставляются с окнами. Файлы .a, которые вы предоставляете компоновщику, должны быть включены в mingw. Добавьте 'ws2_32' в диалог в http://puu.sh/peeYr/9cb79897e5.png. Я не уверен, как Code :: blocks упорядочивает библиотеки, поэтому я не знаю, должен ли ws2_32' быть в этом списке до или после библиотек завитка. – user4581301

ответ

0

Затем я попытался связь с libcurldll.a, а затем в libcurl.dll из папки BIN, который скомпилированная однако когда дело дошло до запуска он сказал, что «libcurl.dll отсутствует на компьютере».

Stick с libcurl.dll.

Вы успешно связали программу с libcurl.dll, потому что ваша компоновщик компоновщика (в Code :: Blocks) успешно разрешил компоновщику его найти.

libcurl.dll - библиотека динамических ссылок . Это означает, что компоновщик физически не включает в вашу программу, а просто проверяет, что он определяет функции или другие символы, которые ваша программа пытается сослаться на него, и вставляет в вашу программу запрос загрузчику программы Windows для загрузки DLL во время выполнения. (Таким образом, должна быть только одной копией libcurl в системе, которую потенциально могут использовать все завитующие клиентские программы).

Это означает, что во время выполнения что DLL попавшего существовать в одном из мест, где для Windows загрузчик ищет его, или Windows, будут говорить Libcurl.длл отсутствует с вашего компьютера

местах, где ОС Windows выполняет поиск библиотек DLL описаны here, , из которого вы увидите, что самый простой способ получить программу для запуска, чтобы разместить libcurl.dll в той же директории с вашей .exe ; хотя, если вы хотите сделать это доступным для любых завитушек в вашей системе, вы бы выбрали вариант 3, 4 или 5.

Смежные вопросы