Introduction to Conan C++ Package Manager [2019 Class Archive]

Become a Barbarian in One Day

“Introduction to Conan C++ Package Manager” is a one-day training course taught by Diego Rodriguez-Losada. It is offered at the Gaylord Rockies from 9AM to 5PM either on Sunday, September 15th, 2019 (immediately prior to the conference). Lunch is included.

Course Description

This class is a full hands-on introductory course to how to use Conan, the open source C++ package manager. From the basics, how to consume existing packages in your applications and how to create packages for your own libraries, to advanced concepts like integrations with different build systems, SCM, development of packages, versioning, dependencies conflicts, ABI compatibility and binaries management. All these concepts will be approached and learnt in real working exercises, installing, creating, cross-building, uploading and downloading packages.

Course Topics

  • Introduction
    • Using existing packages in your applications.
    • Using different build systems: Conan generators and build helpers
    • Searching and displaying information about packages and the dependency graph
    • Creating packages for C++ libraries.
    • The binary model: how to create and maintain packages for different OS, compilers, architectures… using profiles.
    • Cross-compiling packages
    • Conan decentralized architecture: uploading and downloading packages to remote servers. Using Artifactory CE server.
    • Introduction to Bintray repositories, existing OSS packages.
  • Advanced
    • Using Conan packages to wrap tools like CMake, compilers or testing frameworks, with build-requires
    • Integrations with source control systems
    • Automatic versioning with package revisions
    • Customizing the binary model. Distributing configuration with “conan config install”
    • Conan extensions: hooks (linter, binary checking, etc) and python-requires (how to reuse common code in your package recipes)


  • Basic knowledge of building C++. Very basic CMake will be used in the examples, but not necessary to have used it before.
  • A laptop with a reasonably modern OS and WiFi internet capable.
  • Environment (Conan, CMake, editors) will be virtualized in the cloud.

Course Instructor

Diego Rodriguez-Losada

Diego Rodriguez-Losada‘s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup.. Since then he mostly develops in Python. Diego is a C/C++ package manager co-creator and maintainer, now working at JFrog as Senior Software Engineer and C/C++ Advocate.

Diego will be assisted by others from the JFrog team.