Как установить libcurl3 ubuntu

Обновлено: 02.07.2024

Ознакомительный тур по libcurl: libcurl скомпилирован и используется в среде Unix и Windows

Из-за соображений работы, плюс немного моих хобби, я провел целый день, изучая и изучая libcurl сегодня.

Документация libcurl очень полная, и после получения исходного кода код, документация, инструменты и т. Д. Становятся очень полными. Однако для новичков действительно сложно определить направление, подходящее для их поступления, из таких сложных и разнообразных документов. Этот блог должен дать моим коллегам-программистам, которые также глубоко вовлечены в сложную документацию libcurl, путь, который я могу выбрать.

Перед этим блогом я успешно скомпилировал библиотеку libcurl в Ubuntu 18.04, RedHat 7.2 и Windows 10 и успешно запустил тот же пример кода с использованием скомпилированной библиотеки. С одной стороны, для того, чтобы записать яму, на которую я ступил посередине, с другой стороны, это также помогает большинству пользователей сети. Я старался изо всех сил записывать свои чувства и достижения за этот период в этом блоге, надеясь помочь всем.

Перед компиляцией и использованием библиотеки libcurl существует проблема, которую ветераны, по-видимому, легко упускают из виду:

Другими словами, нам нужно понять libcurl и связанные с ним концепции.

Для новичков даже понятия cURL, libcurl и curl неясны. Это не вина нас. Это правда, что это не четко указано на официальном сайте, но это четко указано в документе FAQ в исходном коде.

What is cURL?
cURL is the name of the project. The name is a play on ‘Client for URLs’, originally with URL spelled in uppercase to make it obvious it deals with URLs. The fact ti can also be pronounced ‘see URL’ alse helped, it works as an abbreviation for “Client URL Request Library” or why not the recursive version: “Curl URL Request Library”.

Короче говоря, cURL - это название проекта. Это аббревиатура клиента для URL-адресов, см. URL-адрес, клиентская библиотека запросов URL-адресов или библиотека запросов URL-адресов Curl, которая также является проектом библиотеки клиентских запросов URL-адресов.

Так что же такое libcurl?

The cURL project produces two products:
libcurl
A free and easy-to-use client-side URL transfer library.

curl
A command line tool for getting or sending files using URL syntax.

Приведенный выше абзац ясно показывает связь между cURL и libcurl и curl, то есть:

cURL Этот проект содержит два продукта, libcurl и curl.
Среди них libcurl - клиентская библиотека поддержки URL-адресов, а curl - инструмент командной строки, написанный с использованием библиотеки libcurl, которая может использовать идентификацию URL-адреса для запроса или отправки файлов.

Другими словами, если мы хотим написать код для управления поведением сети, нам нужно использовать библиотеку libcurl вместо инструмента командной строки curl, и если мы хотим напрямую вызвать инструмент командной строки curl для завершения некоторых операций, таких как Он встроен в код скрипта, и на этот раз мы будем использовать инструмент командной строки curl.

cURL、libcurl curl

Среди них взаимосвязь между cURL, libcurl и curl показана на следующем рисунке (я нарисовал его сам, слегка распылив T_T):

Другая интересная вещь заключается в том, что мы можем произнести cURL, чтобы увидеть URL, мы можем свернуть исходный звук, начинающийся с буквы k, которая похожа на произношение девушки или графа. Даже в официальном документе FAQ также приводится официальное произношение curl:
произношение произношение

Теперь, когда я разобрался с некоторыми необходимыми концепциями и некоторыми интересными не по теме, давайте посмотрим, что нам нужно для компиляции и использования libcurl в среде Unix и среде Windows, и где мы можем ее получить. Эти вещи

1. завить официальный сайт

Мы хотим знать о libcurl, самый прямой источник ресурсов, конечно же, официальный сайт:
curl официальный сайт

curl

Для новичков поначалу это может показаться немного запутанным, потому что может быть непонятным различие между curl и libcurl. Вот почему я должен представить разницу между cURL, libcurl и curl перед знакомством с исходным кодом. Я считаю, что после того, как я потратил так много места в последнем разделе, чтобы представить разницу между тремя, вы не должны так смущаться.

Для наших разработчиков понимание libcurl должно быть самым важным. Потому что мы хотим использовать библиотеку libcurl для написания кода, а не для обучения использованию curl.

2. Официальный сайт libcurl

libcurl

Нажмите на место, где я рисую красную рамку на картинке выше, которая является предметом нашего тщательного изучения, которое является официальным документом libcurl:
Официальный сайт libcurl

Количество информации на этом сайте очень велико, включая учебные пособия по обучению, примеры кода, адрес загрузки и так далее. Вы можете получить некоторое первоначальное представление об официальном сайте libcurl, нажав и просматривая свои собственные попытки.

Среди них рекомендуется прочитать учебный документ на вкладке Учебное пособие. Хотя этот учебный документ очень нервный и не очень подходит для начинающих, но для тех, кто хочет узнать libcurl макроскопически с самого начала , Это единственный документ с официальным одобрением (дружеское напоминание, есть перевод этого документа на китайский язык, студенты со слабым английским языком могут искать информацию в Интернете, чтобы увидеть).
libcurl programming tutorial

После прочтения вышеприведенных документов вы можете некоторое время быть в замешательстве, но по-прежнему понимаете основные понятия и функции libcurl. В настоящее время вам может понадобиться установить и скомпилировать libcurl и запустить несколько примеров кода для его отладки, чтобы повысить уверенность в себе.

Итак, вопрос в том, как нам загрузить исходный код libcurl?

download page

Когда мы нажали кнопку «Загрузить страницу» на веб-сайте libcurl, это может снова сбить с толку, почему? Поскольку вы смотрите на такую ​​сложную страницу, вы не знаете, какой файл загрузить на некоторое время:

Здесь, благодаря моим попыткам, я обнаружил, что нажатие на файл с красной рамкой на картинке выше является наиболее подходящим для нужд здесь.

Прежде всего, в списке загрузки есть много пакетов, основанных на разных пакетах системной среды, которые загружаются только в виде поддерживаемого библиотечного файла, только для «использования», а не для компиляции и обучения.

Кроме того, файлы, загруженные с помощью мастера загрузки, который является шаблоном загрузки, также основаны на содержимом, загруженном вышеуказанным способом, и все они являются продуктами с недостаточным весом. Требования кода не очень последовательны.

curl

Итак, после многих попыток я, наконец, обнаружил, что загрузка Source Archives, которая является версией исходного кода, является лучшей. Причина в том, что после того, как вы загрузите его, разархивируйте его и посмотрите на содержимое внутри. Вы узнаете, потому что это действительно идеально:

Кратко скажем несколько:

2. папка winbuild
В этой папке описывается, как скомпилировать libcurl с помощью Visual Studio. Компиляция и использование на основе среды Windows относятся к содержимому файла BUILD.WINDOWS.txt в этой папке.
И файл информации о конфигурации для компиляции находится в этой папке, что значительно облегчает использование Visual Studio для компиляции libcurl под Windows.

3. configure
Этот файл сценария используется для настройки информации об установке libcurl в Unix, которая позже используется для установки среды libcurl.

Подождите, подождите, файл исходного кода curl содержит много вещей. Есть много вещей, которые вы, возможно, не сможете потрогать, и мы можем постепенно исследовать и использовать их в нашем исследовании.

Давайте перейдем к теме, как libcurl компилируется и используется в среде Unix?

Эта проблема очень ясна в файле INSTALL.md в curl-7.61.0 \ docs:

A normal Unix installation is made in three or four steps (after you’ve unpacked the source archive):
./configure
make
make test (optional)
make install

Другими словами, в Unix-подобной среде мы можем использовать следующие четыре инструкции в каталоге файлов исходного кода для завершения установки и компиляции библиотеки libcurl:

Третий этап, этап тестирования, занимает очень много времени и может быть пропущен для экономии времени.
Кроме того, на четвертом шаге могут возникнуть проблемы с разрешениями. В случае возникновения этой проблемы вам необходимо перейти к установке корневых разрешений.

Кратко суммируйте следующие шаги:

1. Используя WinSCP и аналогичные инструменты, поместите загруженный файл исходного кода в указанную директорию, например, я теперь помещаю скачанный файл curl-7.61.0.zip в среду RedHat 7.2 /home/wangying/libcurl Под папкой

2. Разархивируйте файл исходного кода, размещенный на предыдущем шаге

unzip

3. После завершения распаковки войдите в папку curl-7.61.0 и выполните 4 инструкции, упомянутые выше:

Я предлагаю вам сохранить третий шаг, потому что он слишком трудоемкий (T_T).

4. После завершения выполнения при запуске curl по-прежнему будет отображаться версия, поставляемая с системой по умолчанию. Нам нужно ввести каталог установки по умолчанию /usr/local/bin Используйте следующую команду для запуска:

curl curl-config

Вышеуказанные две строки кода выведут информацию о версии двух инструментов curl и curl-config.Установка такая же, как и версия, которую вы скачали. Согласно моему экспериментальному опыту, как только вы запустите две вышеуказанные строки кода, система автоматически запишет путь этих двух инструментов, но для того, чтобы система могла найти эти два инструмента, вы можете установить переменные среды отдельно.

5. Соответствующие заголовочные файлы библиотеки libcurl и расположение файлов библиотеки можно просмотреть с помощью следующих команд (это будет упомянуто при использовании в следующем разделе)

curl-config


где –cflags выводит путь к файлу заголовка, который нам нужно включить при написании кода, и –libs выводит путь к файлу библиотеки, который нам нужно включить при написании кода, нам просто нужно упростить Добавлен в инструкции по компиляции для запуска нашего примера кода.

Давайте щелкнем на папке примеров в каталоге с открытым исходным кодом и в файле README подробно расскажем, как использовать пример кода libcurl:

Most examples should build fine using a command line like this:
$ curl-config --cc --cflags --libs -o example example.c
Some compilers don’t like having the arguments in this order but instead want you do reorganize them like:
$ curl-config --cc -o example example.c curl-config --cflags --libs

Другими словами, до тех пор, пока мы успешно установили инструменты curl и curl-config на предыдущем шаге, на этом шаге нам просто нужно просто выполнить эту строку инструкций, чтобы автоматически указать заголовочный файл и информацию о файле библиотеки кода:

https on unix

Тот же пример, который я запускал на Ubuntu 18.04 и RedHat 7.2, я считаю, что на Unix-подобных проблем не должно быть.

Поскольку я раньше занимался разработкой для Windows, конечно, мне нужно изучить, как libcurl компилируется и используется на платформе Windows (жизнь вот-вот бросится!).

Компиляция libcurl в среде Windows упоминается в файле INSTALL в папке docs папки исходного кода, но описание немного неясно. Я рад, что папка winbuilds находится непосредственно в корневом каталоге исходного кода, чтобы помочь нам завершить работу по компиляции в среде Windows.

Здесь давайте взглянем на содержимое файла BUILD.WINDOWS.txt в папке winbuild (содержимое этого файла очень подробное и здесь не будет вставлено).

Я кратко суммирую следующие шаги:

prompt

1. Запустите командную строку разработчика для инструмента VS

2. Перейдите в каталог winbuild в папке с исходным кодом

3. Запустите следующие инструкции:

Где mode = fill в следующем static - это компиляция статической библиотеки, а dll - динамическая библиотека, кроме того, инструкции по заполнению параметров следующие:

Вы можете заполнить в соответствии со своими потребностями, команда, которую я заполняю здесь:

14

4. После завершения компиляции введите папку с исходным кодом, и появится дополнительная папка сборки. В нее будет нажата папка с самым коротким именем. Вы можете увидеть подпапки bin, include и lib. Bin - это команда compiled curl Line tools, include - это файл заголовка, который нам нужно включить в код написания, а lib - файл статической библиотеки, который нам нужно включить в код написания (но все же нужна еще одна ссылка статической библиотеки CRT).

На этом этапе работа по статической компиляции библиотеки libcurl с использованием инструмента компиляции Visual Studio 2017 завершена. Стоит отметить, что на платформе Windows существует множество опций компиляции. Мы можем настроить библиотеку libcurl так, как нам нужно. Например, статические и динамические, такие как использование версии VC 12 13 14 15 и так далее.

В этом блоге показано основное использование статических библиотек. Далее давайте посмотрим, как использовать только что скомпилированные файлы для запуска примера кода.

Этот пост очень ясен не только для включения файла заголовка include и файла статической библиотеки lib, который мы только что сгенерировали, но также для включения некоторых дополнительных файлов статической библиотеки и установки поля предварительной обработки для нормального выполнения нашего примера. код.

Здесь я кратко суммирую следующие шаги:

Таким образом, вы можете сделать окно консоли приостановленным после запуска логики кода, чтобы не закрывать окно.

13

3. Скопируйте в проект папку include и папку lib, созданные в предыдущем разделе.

4. Настройте каталог VC ++: код должен быть в состоянии найти файлы заголовков и файлы статической библиотеки, которые должны быть включены
включает добавление каталога:

Добавлен каталог библиотеки:

12

5. Настроить файлы статической библиотеки для связи
linker-> input-> дополнительные зависимости

15

6. Измените определение препроцессора: это изменение происходит из пункта 5.7 в файле часто задаваемых вопросов в папке docs в папке исходного файла:


When building an application that uses the static libcurl library, you must
add -DCURL_STATICLIB to your CFLAGS. Otherwise the linker will look for
dynamic import symbols. If you’re using Visual Studio, you need to instead
add CURL_STATICLIB in the “Preprocessor Definitions” section.

Другими словами, если мы хотим статически связать библиотеку libcurl, нам нужно добавить тег определения предварительной обработки CURL_STATICLIB, иначе компоновщик будет искать динамическую версию библиотеки. Конкретный метод модификации заключается в следующем:

C / C ++ -> препроцессор-> определение препроцессора

16

17

7. Унифицированный метод генерации кода, если это Debug, это многопоточная отладка / MDd, если это Release, это многопоточная / MD
C / C ++ -> генерация кода-> библиотека времени выполнения

18

8. Скомпилируйте и запустите, в случае успеха вы можете увидеть результаты следующим образом

На данный момент, конец цветов, ^ _ ^

Лучший способ изучить библиотеку libcurl - это сначала заглянуть на официальный веб-сайт, затем загрузить исходный код в соответствии с официальным веб-сайтом и, наконец, скомпилировать исходный код для запуска примера кода, чтобы освоить использование библиотеки libcurl.

Можно сказать, что документация к библиотеке libcurl действительно очень полная: если вы хотите покусывать английский язык, пытаться искать и вникать, вы получите то, что хотите исследовать.

Этот блог документировал процесс, который я не понимал с самого начала, и, наконец, успешно скомпилировал библиотеку libcurl и использовал ее для запуска примера кода в Ubuntu 18.04, RedHat 7.2 и Windows 10. В ходе этого процесса возникло много трудностей, и все они успешно вышли под руководством официального сайта, документации в исходном коде и блога других.

Этот блог действительно был написан в течение долгого времени. Это также первый раз, когда я писал блог более часа назад. Хотя я очень устал, я не могу скрыть свое волнение. Только писать я могу понять смысл существования. Пиши так много, просто надейся помочь тебе ^ _ ^

Если установочный скрипт выдаёт ошибку: bash: curl: command not found или bash: curl: команда не найдена. Это значит что такой команды нет в вашей системе. Решение простое – установить утилиту curl. Эта утилита для скачивания файлов хоть и не так популярна, как wget, но может предоставить больше возможностей, а также имеет в своём составе библиотеку, которую можно подключить к другим программам.

Мы рассмотрим как установить curl в Ubuntu 20.04. Но инструкция будет актуальна и для более новых или старых версий дистрибутива.

Установка curl в Ubuntu

uIWd1ftTdXAAAAAElFTkSuQmCC

sudo apt update

sudo apt install curl

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

B3qHpbFDKBjBAAAAAElFTkSuQmCC

Эта команда может быть важна, так как программа активно развивается и каждый раз исправляются десятки ошибок и добавляются новые функции. Для того чтобы скачать файл используйте такую команду:

8C33BOZkFHwtAAAAAASUVORK5CYII=

О других аргументах и способах их использования можете узнать в нашем материале.

Выводы

Утилита curl получила широкое распространение. Она доступна на всех актуальных настольных операционных системах. В Ubuntu 20.04 утилита не предустановлена, но доступна в репозитории и теперь вы знаете как выполняется установка curl Ubuntu.

Описанная ошибка чаще всего встречается только на недавно установленном дистрибутиве. Так как библиотека libcurl используется большим количеством приложений и рано или поздно будет установлена в вашей системе вместе с curl.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Мой любимый веб-браузер зависит от libcurl3 (Opera 36.0), но многие приложения зависят от libcurl4, включая PlayOnLinux или Steam клиент. Было бы неплохо установить PlayOnLinux или Steam, но я не отказываюсь от своего любимого веб-браузера. Кто-нибудь знает обходной путь, как я мог установить их обоих? Я где-то читал, что libcurl4 основан на libcurl3, поэтому я понятия не имею, почему они продолжают удалять друг друга.

3 ответа

В конце концов, я нашел лучшее, универсальное решение для этого. Парень в Интернете создал версию CURL, которая поддерживает как CURL3, так и CURL4. Доступно через. Через поверенного Пока все работает хорошо. К сожалению, я уверен, что эта версия CURL не очень известна, несмотря на то, что она решает проблему, которая очень распространена для всех пользователей Ubuntu. Итак, я должен попросить поделиться этими знаниями в любой форме, которую вы любите или предпочитаете

Похоже, я переоценил это. Я выполнил несколько шагов, и это работает! Спасибо @guiverc, твое "Это альтернатива" лишает меня идеи заставить программу принимать libcurl3 или libcurl4

  1. Откройте терминал во временной папке. использование dpkg-deb -x /path/to/deb/file .
  2. Откройте файл control.tar.gz. Перейдите к ./control
  3. Изменить строку с зависимостью от libcurl3 в libcurl3 | libcurl4
  4. Бежать dpkg-deb -b . name-of-new-deb-file.deb
  5. Теперь беги dpkg-deb -e path-to-deb-file-crated-in-step-4
  6. Пакет устанавливается с использованием временной папки в качестве корневой.
  7. Создайте пентаграмму из маленьких красных камней.В полнолуние принесите в жертву козу с 666 ударами ножа, крича "ЛЮ" на луне.
  8. Запустите файловый браузер от имени пользователя root и скопируйте все папки и файлы из временной папки в реальные папки ( temporary_folder/usr в /usr , temporary_folder/bin в /bin .так далее)
  9. Все сделано, программа установлена.

Я уверен, что один из шагов не является необходимым, но я не знаю, какой.

Это альтернатива, которая подразумевает вашу причину, хотя на самом деле не включает libcurl3 и libcurl4 в вашу систему одновременно.

Я бы предложил использовать libcurl4 в вашей системе для ваших основных приложений, в надежде на то, что он обеспечивает лучшую безопасность, и добавить браузер Opera в качестве оснастки.

Оснастки содержат свои необходимые библиотеки внутри самой оснастки (т.е. самодостаточны), что позволяет избежать проблемы, о которой вы спрашивали. Таким образом, libcurl3 будет содержаться в оснастке, содержащей ваш браузер Opera, и не будет влиять на любое другое программное обеспечение, требующее libcurl4. Это быстрый обходной путь:)

Ознакомительный тур по libcurl: libcurl скомпилирован и используется в среде Unix и Windows

Из-за соображений работы, плюс немного моих хобби, я провел целый день, изучая и изучая libcurl сегодня.

Документация libcurl очень полная, и после получения исходного кода код, документация, инструменты и т. Д. Становятся очень полными. Однако для новичков действительно сложно определить направление, подходящее для их поступления, из таких сложных и разнообразных документов. Этот блог должен дать моим коллегам-программистам, которые также глубоко вовлечены в сложную документацию libcurl, путь, который я могу выбрать.

Перед этим блогом я успешно скомпилировал библиотеку libcurl в Ubuntu 18.04, RedHat 7.2 и Windows 10 и успешно запустил тот же пример кода с использованием скомпилированной библиотеки. С одной стороны, для того, чтобы записать яму, на которую я ступил посередине, с другой стороны, это также помогает большинству пользователей сети. Я старался изо всех сил записывать свои чувства и достижения за этот период в этом блоге, надеясь помочь всем.

Перед компиляцией и использованием библиотеки libcurl существует проблема, которую ветераны, по-видимому, легко упускают из виду:

Другими словами, нам нужно понять libcurl и связанные с ним концепции.

Для новичков даже понятия cURL, libcurl и curl неясны. Это не вина нас. Это правда, что это не четко указано на официальном сайте, но это четко указано в документе FAQ в исходном коде.

What is cURL?
cURL is the name of the project. The name is a play on ‘Client for URLs’, originally with URL spelled in uppercase to make it obvious it deals with URLs. The fact ti can also be pronounced ‘see URL’ alse helped, it works as an abbreviation for “Client URL Request Library” or why not the recursive version: “Curl URL Request Library”.

Короче говоря, cURL - это название проекта. Это аббревиатура клиента для URL-адресов, см. URL-адрес, клиентская библиотека запросов URL-адресов или библиотека запросов URL-адресов Curl, которая также является проектом библиотеки клиентских запросов URL-адресов.

Так что же такое libcurl?

The cURL project produces two products:
libcurl
A free and easy-to-use client-side URL transfer library.

curl
A command line tool for getting or sending files using URL syntax.

Приведенный выше абзац ясно показывает связь между cURL и libcurl и curl, то есть:

cURL Этот проект содержит два продукта, libcurl и curl.
Среди них libcurl - клиентская библиотека поддержки URL-адресов, а curl - инструмент командной строки, написанный с использованием библиотеки libcurl, которая может использовать идентификацию URL-адреса для запроса или отправки файлов.

Другими словами, если мы хотим написать код для управления поведением сети, нам нужно использовать библиотеку libcurl вместо инструмента командной строки curl, и если мы хотим напрямую вызвать инструмент командной строки curl для завершения некоторых операций, таких как Он встроен в код скрипта, и на этот раз мы будем использовать инструмент командной строки curl.

cURL、libcurl curl

Среди них взаимосвязь между cURL, libcurl и curl показана на следующем рисунке (я нарисовал его сам, слегка распылив T_T):

Другая интересная вещь заключается в том, что мы можем произнести cURL, чтобы увидеть URL, мы можем свернуть исходный звук, начинающийся с буквы k, которая похожа на произношение девушки или графа. Даже в официальном документе FAQ также приводится официальное произношение curl:
произношение произношение

Теперь, когда я разобрался с некоторыми необходимыми концепциями и некоторыми интересными не по теме, давайте посмотрим, что нам нужно для компиляции и использования libcurl в среде Unix и среде Windows, и где мы можем ее получить. Эти вещи

1. завить официальный сайт

Мы хотим знать о libcurl, самый прямой источник ресурсов, конечно же, официальный сайт:
curl официальный сайт

curl

Для новичков поначалу это может показаться немного запутанным, потому что может быть непонятным различие между curl и libcurl. Вот почему я должен представить разницу между cURL, libcurl и curl перед знакомством с исходным кодом. Я считаю, что после того, как я потратил так много места в последнем разделе, чтобы представить разницу между тремя, вы не должны так смущаться.

Для наших разработчиков понимание libcurl должно быть самым важным. Потому что мы хотим использовать библиотеку libcurl для написания кода, а не для обучения использованию curl.

2. Официальный сайт libcurl

libcurl

Нажмите на место, где я рисую красную рамку на картинке выше, которая является предметом нашего тщательного изучения, которое является официальным документом libcurl:
Официальный сайт libcurl

Количество информации на этом сайте очень велико, включая учебные пособия по обучению, примеры кода, адрес загрузки и так далее. Вы можете получить некоторое первоначальное представление об официальном сайте libcurl, нажав и просматривая свои собственные попытки.

Среди них рекомендуется прочитать учебный документ на вкладке Учебное пособие. Хотя этот учебный документ очень нервный и не очень подходит для начинающих, но для тех, кто хочет узнать libcurl макроскопически с самого начала , Это единственный документ с официальным одобрением (дружеское напоминание, есть перевод этого документа на китайский язык, студенты со слабым английским языком могут искать информацию в Интернете, чтобы увидеть).
libcurl programming tutorial

После прочтения вышеприведенных документов вы можете некоторое время быть в замешательстве, но по-прежнему понимаете основные понятия и функции libcurl. В настоящее время вам может понадобиться установить и скомпилировать libcurl и запустить несколько примеров кода для его отладки, чтобы повысить уверенность в себе.

Итак, вопрос в том, как нам загрузить исходный код libcurl?

download page

Когда мы нажали кнопку «Загрузить страницу» на веб-сайте libcurl, это может снова сбить с толку, почему? Поскольку вы смотрите на такую ​​сложную страницу, вы не знаете, какой файл загрузить на некоторое время:

Здесь, благодаря моим попыткам, я обнаружил, что нажатие на файл с красной рамкой на картинке выше является наиболее подходящим для нужд здесь.

Прежде всего, в списке загрузки есть много пакетов, основанных на разных пакетах системной среды, которые загружаются только в виде поддерживаемого библиотечного файла, только для «использования», а не для компиляции и обучения.

Кроме того, файлы, загруженные с помощью мастера загрузки, который является шаблоном загрузки, также основаны на содержимом, загруженном вышеуказанным способом, и все они являются продуктами с недостаточным весом. Требования кода не очень последовательны.

curl

Итак, после многих попыток я, наконец, обнаружил, что загрузка Source Archives, которая является версией исходного кода, является лучшей. Причина в том, что после того, как вы загрузите его, разархивируйте его и посмотрите на содержимое внутри. Вы узнаете, потому что это действительно идеально:

Кратко скажем несколько:

2. папка winbuild
В этой папке описывается, как скомпилировать libcurl с помощью Visual Studio. Компиляция и использование на основе среды Windows относятся к содержимому файла BUILD.WINDOWS.txt в этой папке.
И файл информации о конфигурации для компиляции находится в этой папке, что значительно облегчает использование Visual Studio для компиляции libcurl под Windows.

3. configure
Этот файл сценария используется для настройки информации об установке libcurl в Unix, которая позже используется для установки среды libcurl.

Подождите, подождите, файл исходного кода curl содержит много вещей. Есть много вещей, которые вы, возможно, не сможете потрогать, и мы можем постепенно исследовать и использовать их в нашем исследовании.

Давайте перейдем к теме, как libcurl компилируется и используется в среде Unix?

Эта проблема очень ясна в файле INSTALL.md в curl-7.61.0 \ docs:

A normal Unix installation is made in three or four steps (after you’ve unpacked the source archive):
./configure
make
make test (optional)
make install

Другими словами, в Unix-подобной среде мы можем использовать следующие четыре инструкции в каталоге файлов исходного кода для завершения установки и компиляции библиотеки libcurl:

Третий этап, этап тестирования, занимает очень много времени и может быть пропущен для экономии времени.
Кроме того, на четвертом шаге могут возникнуть проблемы с разрешениями. В случае возникновения этой проблемы вам необходимо перейти к установке корневых разрешений.

Кратко суммируйте следующие шаги:

1. Используя WinSCP и аналогичные инструменты, поместите загруженный файл исходного кода в указанную директорию, например, я теперь помещаю скачанный файл curl-7.61.0.zip в среду RedHat 7.2 /home/wangying/libcurl Под папкой

2. Разархивируйте файл исходного кода, размещенный на предыдущем шаге

unzip

3. После завершения распаковки войдите в папку curl-7.61.0 и выполните 4 инструкции, упомянутые выше:

Я предлагаю вам сохранить третий шаг, потому что он слишком трудоемкий (T_T).

4. После завершения выполнения при запуске curl по-прежнему будет отображаться версия, поставляемая с системой по умолчанию. Нам нужно ввести каталог установки по умолчанию /usr/local/bin Используйте следующую команду для запуска:

curl curl-config

Вышеуказанные две строки кода выведут информацию о версии двух инструментов curl и curl-config.Установка такая же, как и версия, которую вы скачали. Согласно моему экспериментальному опыту, как только вы запустите две вышеуказанные строки кода, система автоматически запишет путь этих двух инструментов, но для того, чтобы система могла найти эти два инструмента, вы можете установить переменные среды отдельно.

5. Соответствующие заголовочные файлы библиотеки libcurl и расположение файлов библиотеки можно просмотреть с помощью следующих команд (это будет упомянуто при использовании в следующем разделе)

curl-config


где –cflags выводит путь к файлу заголовка, который нам нужно включить при написании кода, и –libs выводит путь к файлу библиотеки, который нам нужно включить при написании кода, нам просто нужно упростить Добавлен в инструкции по компиляции для запуска нашего примера кода.

Давайте щелкнем на папке примеров в каталоге с открытым исходным кодом и в файле README подробно расскажем, как использовать пример кода libcurl:

Most examples should build fine using a command line like this:
$ curl-config --cc --cflags --libs -o example example.c
Some compilers don’t like having the arguments in this order but instead want you do reorganize them like:
$ curl-config --cc -o example example.c curl-config --cflags --libs

Другими словами, до тех пор, пока мы успешно установили инструменты curl и curl-config на предыдущем шаге, на этом шаге нам просто нужно просто выполнить эту строку инструкций, чтобы автоматически указать заголовочный файл и информацию о файле библиотеки кода:

https on unix

Тот же пример, который я запускал на Ubuntu 18.04 и RedHat 7.2, я считаю, что на Unix-подобных проблем не должно быть.

Поскольку я раньше занимался разработкой для Windows, конечно, мне нужно изучить, как libcurl компилируется и используется на платформе Windows (жизнь вот-вот бросится!).

Компиляция libcurl в среде Windows упоминается в файле INSTALL в папке docs папки исходного кода, но описание немного неясно. Я рад, что папка winbuilds находится непосредственно в корневом каталоге исходного кода, чтобы помочь нам завершить работу по компиляции в среде Windows.

Здесь давайте взглянем на содержимое файла BUILD.WINDOWS.txt в папке winbuild (содержимое этого файла очень подробное и здесь не будет вставлено).

Я кратко суммирую следующие шаги:

prompt

1. Запустите командную строку разработчика для инструмента VS

2. Перейдите в каталог winbuild в папке с исходным кодом

3. Запустите следующие инструкции:

Где mode = fill в следующем static - это компиляция статической библиотеки, а dll - динамическая библиотека, кроме того, инструкции по заполнению параметров следующие:

Вы можете заполнить в соответствии со своими потребностями, команда, которую я заполняю здесь:

14

4. После завершения компиляции введите папку с исходным кодом, и появится дополнительная папка сборки. В нее будет нажата папка с самым коротким именем. Вы можете увидеть подпапки bin, include и lib. Bin - это команда compiled curl Line tools, include - это файл заголовка, который нам нужно включить в код написания, а lib - файл статической библиотеки, который нам нужно включить в код написания (но все же нужна еще одна ссылка статической библиотеки CRT).

На этом этапе работа по статической компиляции библиотеки libcurl с использованием инструмента компиляции Visual Studio 2017 завершена. Стоит отметить, что на платформе Windows существует множество опций компиляции. Мы можем настроить библиотеку libcurl так, как нам нужно. Например, статические и динамические, такие как использование версии VC 12 13 14 15 и так далее.

В этом блоге показано основное использование статических библиотек. Далее давайте посмотрим, как использовать только что скомпилированные файлы для запуска примера кода.

Этот пост очень ясен не только для включения файла заголовка include и файла статической библиотеки lib, который мы только что сгенерировали, но также для включения некоторых дополнительных файлов статической библиотеки и установки поля предварительной обработки для нормального выполнения нашего примера. код.

Здесь я кратко суммирую следующие шаги:

Таким образом, вы можете сделать окно консоли приостановленным после запуска логики кода, чтобы не закрывать окно.

13

3. Скопируйте в проект папку include и папку lib, созданные в предыдущем разделе.

4. Настройте каталог VC ++: код должен быть в состоянии найти файлы заголовков и файлы статической библиотеки, которые должны быть включены
включает добавление каталога:

Добавлен каталог библиотеки:

12

5. Настроить файлы статической библиотеки для связи
linker-> input-> дополнительные зависимости

15

6. Измените определение препроцессора: это изменение происходит из пункта 5.7 в файле часто задаваемых вопросов в папке docs в папке исходного файла:


When building an application that uses the static libcurl library, you must
add -DCURL_STATICLIB to your CFLAGS. Otherwise the linker will look for
dynamic import symbols. If you’re using Visual Studio, you need to instead
add CURL_STATICLIB in the “Preprocessor Definitions” section.

Другими словами, если мы хотим статически связать библиотеку libcurl, нам нужно добавить тег определения предварительной обработки CURL_STATICLIB, иначе компоновщик будет искать динамическую версию библиотеки. Конкретный метод модификации заключается в следующем:

C / C ++ -> препроцессор-> определение препроцессора

16

17

7. Унифицированный метод генерации кода, если это Debug, это многопоточная отладка / MDd, если это Release, это многопоточная / MD
C / C ++ -> генерация кода-> библиотека времени выполнения

18

8. Скомпилируйте и запустите, в случае успеха вы можете увидеть результаты следующим образом

На данный момент, конец цветов, ^ _ ^

Лучший способ изучить библиотеку libcurl - это сначала заглянуть на официальный веб-сайт, затем загрузить исходный код в соответствии с официальным веб-сайтом и, наконец, скомпилировать исходный код для запуска примера кода, чтобы освоить использование библиотеки libcurl.

Можно сказать, что документация к библиотеке libcurl действительно очень полная: если вы хотите покусывать английский язык, пытаться искать и вникать, вы получите то, что хотите исследовать.

Этот блог документировал процесс, который я не понимал с самого начала, и, наконец, успешно скомпилировал библиотеку libcurl и использовал ее для запуска примера кода в Ubuntu 18.04, RedHat 7.2 и Windows 10. В ходе этого процесса возникло много трудностей, и все они успешно вышли под руководством официального сайта, документации в исходном коде и блога других.

Этот блог действительно был написан в течение долгого времени. Это также первый раз, когда я писал блог более часа назад. Хотя я очень устал, я не могу скрыть свое волнение. Только писать я могу понять смысл существования. Пиши так много, просто надейся помочь тебе ^ _ ^

Читайте также: