Conan - Um gerenciador de pacotes para C/C++

Instale facilmente dependências para seus projetos C e C++ .


Conan - Um gerenciador de pacotes para C/C++

Introdução

Conan é um gerenciador de pacotes de software destinado a desenvolvedores C e C++.

Funciona em todos os sistemas operacionais, incluindo Windows, Linux, macOS, FreeBSD, Solaris e outros, e pode ser direcionado a qualquer plataforma, incluindo desktop, servidor e construção cruzada para dispositivos embarcados e bare metal.

Ele se integra com outras ferramentas como Docker, MinGW, WSL e com todos os sistemas de construção, como CMake, MSBuild, Makefiles, Meson, SCons. Ele pode até mesmo se integrar com qualquer sistema de construção proprietário.

Conan é totalmente gratuito, de código aberto e totalmente descentralizado. O repositório central ConanCenter contém centenas de pacotes de bibliotecas de código aberto populares, com muitos binários pré-compilados .

Instalação

Existem diversas maneiras de instalar o Conan . Dentre as possibilidades você pode usar o Portage no Gentoo ou Funtoo, da seguinte forma:

emerge dev-util/conan

No Arch Linux você pode usar o Yay:

# sem sudo
yay -S conan

Você também pode baixar os pacotes .deb, .rpm, tarball diretamente por aqui e instalar:

Ou até mesmo instalar via pip, segundo eles, mais recomendado:

Antes você precisará do Pip instalado, exemplo para sistemas que utilizam o APT:

sudo apt install python3-pip

E basta rodar assim:

pip3 install conan

Se tiver algum problema na instalação, tente somente para seu usuário:

pip3 install conan --user

Utilização

Vamos começar com um exemplo básico, vamos criar um aplicativo de calcula a hash MD5 e que usa uma das bibliotecas mais populares para o C++: Poco. Usaremos o CMake como sistema de construção neste caso, mas tenha em mente que Conan funciona com qualquer sistema de construção e não se limita a usar somente o CMake.

1. Crie o seguinte arquivo de origem dentro de um diretório.

mkdir mymd5 && cd mymd5
vim md5.cpp

Este será o arquivo fonte de nosso aplicativo:

#include "Poco/MD5Engine.h"
#include "Poco/DigestStream.h"

#include <iostream>

int main(int argc, char** argv){
   Poco::MD5Engine md5;
   Poco::DigestOutputStream ds(md5);
   std::string str = {};
   if( argc > 1 ){
      str = argv[1];
   }else{
     std::cout << "Informe a palavra para gerar a HASH MD5." << '\n';
     exit(0);
   }
   ds << str;
   ds.close();
   std::cout << Poco::DigestEngine::digestToHex(md5.digest()) << '\n';
   return 0;
}

2. Agora vamos instalar o Poco

Podemos fazer a pesquisa direto pelo navegador no link: https://conan.io/center, ou usar o conan via linha de comando:

conan search poco --remote=conan-center

A opção --remote=conan-center pede pra fazer a pesquisa online, pode ser ignorada a menos que você tenha o arquivo remotes.json devidamente configurado no diretório: $HOME/.conan/remotes.json .

A saída será similar a isso:

user@host ~/mymd5
Existing package recipes:

poco/1.8.1
poco/1.9.3
poco/1.9.4
poco/1.10.0
poco/1.10.1
user@host ~/mymd5

Suponhamos que você usou o comando conan inspect poco/1.9.4(Use o help para mais informações: conan --help) para inspecionar essa versão e é justamente a versão que você deseja, então basta instalá-lo. Para isso crie um arquivo de nome: conanfile.txt dentro do seu projeto( nesse caso, o projeto: mymd5 ) com as seguintes informações:

[requires]
poco/1.9.4

[generators]
cmake

Certifique-se de ter o CMake instalado. Isso vai gerar o arquivo conanbuildinfo.cmake .

3. Antes de instalar, vamos preparar nosso profile pro Conan

Para isso rode os comando:

conan profile update settings.compiler.libcxx=libstdc++11 default

Se quiser que o Conan detecte automaticamente rode: conan profile new default --detect, se a ABI do seu compilador não for compatível você receberá um “belo de um warning” e precisará rodar o comando indicado logo acima de qualquer forma.

Esse comando irá configurar o arquivo no caminho: $HOME/.conan/profiles/default, mais ou menos assim:

[settings]
os=Linux
os_build=Linux
arch=x86_64
arch_build=x86_64
compiler=gcc
compiler.version=9
compiler.libcxx=libstdc++11
build_type=Release
[options]
[build_requires]
[env]

4. Agora vamos instalar as dependências com Conan

Para isso basta rodar os comandos:

mkdir build && cd build
conan install ..

A saída será similar a isso:

Conan Install

5. Criar o arquivo de construção

Agora vamos criar o arquivo CMakeLists.txt baseado no arquivo: conanbuildinfo.cmake

vim CMakeLists.txt - Fora do diretório build, na raiz do seu projeto.

cmake_minimum_required(VERSION 2.8.12)
project(MD5Encrypter)

add_definitions("-std=c++11")

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

add_executable(md5 md5.cpp)
target_link_libraries(md5 ${CONAN_LIBS})

6. Tudo pronto, vamos criar essa bagaça!

Para Linux ou macOS rode esse comando:

cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make

Pronto, foi gerado o binário md5 dentro do diretório bin/md5 e já podemos testá-lo

Gerando MD5 com Poco e instalado com Conan

Simples, né?!

Para mais informações consulte o repositório oficial do Conan.

Deseja aprender C++ e criar seus programas Gráficos e para Terminal com portabilidade para Linux e Windows?

Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:

Acesse o endereço:

https://terminalroot.com.br/cpp/ e saiba mais!

Fui!


cpp linguagemc


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!