CPP-REST-SDK в Сентос 7
У меня есть CentOS 7 (EPEL-Repo зарегистрирован), но я не нахожу пакет для CPP-REST (libcpprest-dev в Debian) в репозиториях.
Нужно ли устанавливать его из ванили или есть пакет в CentOS?
Спасибо!
1 ответ
Короткий ответ...
В настоящее время не существует "официального" пакета CentOS 7 (2018-10-03) для cpprestsdk (libcpprest-dev в Debian).
Длинный ответ (поделиться этим на случай, если это кому-нибудь поможет)...
Вы можете собрать cpprestsdk из исходного кода, но инструкции "Как собрать для Linux" ( https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux) не включают CentOS или RHEL (в время написания этой статьи, 2018-10-03).
Перед сборкой cpprestsdk в CentOS 7 вам необходимо обновить boost (на момент написания этой статьи в репозиториях CentOS 7 было boost 1.53, но требуется 1.54, а самое последнее - 1.68). Вы можете сделать это для обновления (используя boost 1.68 в качестве примера):
cd && wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
cd ~/boost_1_68_0
./bootstrap.sh --prefix=/opt/boost
sudo ./b2 install --prefix=/opt/boost --with=all
После обновления boost я смог собрать cpprestsdk на CentOS 7 следующим образом...
Установите некоторые необходимые инструменты / библиотеки:
sudo yum -y install git cmake3 boost-devel openssl-devel gcc-c++ make
Загрузите проект cpprestsdk:
git clone https://github.com/Microsoft/cpprestsdk.git casablanca
cpprestsdk хочет рассматривать предупреждения как ошибки. Мне пришлось отключить это, закомментировав эту строку в ~/casablanca/Release/CMakeLists.txt:
#set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
Подготовить / собрать проект cpprestsdk:
cd casablanca/Release
mkdir build.release && cd build.release
cmake3 .. -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=/opt/boost
make
Установить заголовочные файлы и библиотеку
sudo make install
Обратите внимание, что я звоню cmake3 (не cmake), и я указываю усиление root; которая отличается от официальных инструкций, написанных и протестированных для Ubuntu (не CentOS или RHEL). Чтобы собрать мои проекты с использованием cpprestsdk, мне пришлось использовать ldconfig, чтобы найти пути к библиотекам.