CLion 2024.3 Help

Vcpkg integration

To help you manage project dependencies and external libraries, CLion integrates with vcpkg, a package manager for C/C++.

Install vcpkg

  1. Select View | Tool Windows | Vcpkg from the main menu to open the Vcpkg tool window.

  2. Click :

    Add vcpkg button in the vcpkg tool window
  3. Specify the installation settings in the Add Vcpkg Repository dialog:

    Adding a vcpkg repository
    • The name and URL of your vcpkg repository.

    • The installation directory (or use the default value). If you already have vcpkg installed, provide the path to its location in this field.

    • Add vcpkg integration to existing CMake profiles

      CLion uses CMake toolchain file to integrate with vcpkg. Select the CMake profiles you want the toolchain file to be linked to.

      After the installation, you can find the toolchain file added to the selected profile's CMake options via the CMAKE_TOOLCHAIN_FILE variable.

  4. Click OK and wait for the installation to complete.

    The list of packages will appear in the middle pane. In the right-hand pane, you can find the description and actions for the selected package.

    Vcpkg tool window

Browse and install packages

  1. To find a particular package, start typing its name in the search field:

    Searching for a package
  2. Select the package and press Enter or click Install in the right-hand pane.

  3. In classic mode, if the package was installed successfully, CLion will prompt you to add it to vcpkg.json and switch to manifest mode:

    Installation notification
  4. You can find the installed package under Installed | Classic Mode or Added | Manifest Mode.

    Installed packages subtree
    Packages added to vcpk.json

Switch to manifest mode

  1. Click the Switch to Manifest Mode button:

    Switch to Manifest Mode
  2. Select the packages to be added to vcpkg.json:

    Packages to be added to vcpkg.json
  3. CLion will create a vcpkg.json file, add the packages, and switch the project to manifest mode:

    Switched to manifest mode

Investigate console output

Console: vcpkg is a read-only tab that shows all vcpkg commands with full output.

Vcpkg Console tab
  • When errors occur, for example, during package installation, CLion shows a notification message. Click Show output to open the Console tab and investigate the problem.

    Intallation error message
  • You can switch to the Console tab at any time while working with vcpkg. The tab is also accessible via the Show Console button.

    The Show Console button

Install/remove multiple packages

  1. Select several packages in the tree.

  2. Use the following shortcuts:

    • To install or add to vcpkg.json, press Enter.

    • To remove, press Alt+Delete/⌘⌫.

Start using a package

Packages should be added to CMakeLists.txt. For most packages, vcpkg provides the code to be included in CMake script.

  1. If there is a hint from vcpkg, you will see the Add packages to CMakeLists.txt option in the notification:

    Adding packages to CMakeLists.txt
  2. Copy the suggested code into your CMakeLists.txt file. If required, change the target link name (which is main by default) to the one you want the packages to be linked to.

    Code to paste in CMakeLists.txt

Update vcpkg and packages

Use the following tool window actions for update and upgrade:

  • Update All updates the vcpkg Git repository to the latest version and then checks it for available package updates.

    Update all icon
  • Upgrade All updates the vcpkg Git repository to the latest version and then updates all installed packages to their latest versions.

    Upgrade all icon
  • Check for Updates (the The three dots icon menu) checks whether there is a newer version of the vcpkg Git repository.

  • Update Repository (the The three dots icon menu) checks the current version of the vcpkg Git repository for available package updates.

  • Upgrade Repository (the The three dots icon menu) checks the current version of the vcpkg Git repository for available package updates and installs them.

  • Update Vcpkg Repository (the The three dots icon menu) updates the vcpkg Git repository to the latest version.

Upgrade packages one by one

Packages that can be upgraded are indicated by a warning sign.

  • Select a package and click the Upgrade package icon in the right-hand pane:

    Upgrading packages one by one

Auto-update repositories

  • Click on the toolbar and select Auto-update repositories on IDE start to allow CLion to check for repository updates on each IDE start.

    Option to auto-update repositories on IDE start

Use quick-fixes to add missing packages

  • If you include a header from a package that is not yet installed, compilation will fail with the file not found error. Click Fix next to the error message:

    Quick-fix link in the build error message

    CLion will suggest to install the missing package:

    Suggestion to quick-fix for a missing package
  • In case there are multiple candidates for installation, open the list from the Fix menu:

    Fix menu

    Select the package to install in the dialog:

    Package candidates dialog

Force the use of system CMake and Ninja

You can force vcpkg to use CMake and Ninja from the profile environment.

  1. Click the Edit vcpkg button in the left-hand pane:

    The Edit vcpkg icon
  2. Expand the Advanced Settings section and set the Use system binaries checkbox:

    Force the use of system binaries

Troubleshooting: vcpkg installs x64-windows triplets instead of MinGW triplets

When you add a package on MinGW, the standard vcpkg installs a x64-windows triplet instead of a MinGW triplet. CLion can fix this automatically.

  1. Click Fix in the error message:

    Fix for MinGW triplets
  2. In classic mode, CLion will add VCPKG_TARGET_TRIPLET to CMake options of the current profile.

    In manifest mode, CLion will add VCPKG_TARGET_TRIPLET to CMake options, along with two environment variables: VCPKG_DEFAULT_TRIPLET and VCPKG_DEFAULT_HOST_TRIPLET.

Known issues and limitations

  • Currently, vcpkg support is not working for the following toolchains: Cygwin (CPP-31665), Remote (CPP-30683), Docker (CPP-30684), and WSL (CPP-30685).

  • Quick-fix for missing packages in the editor is under development (CPP-31662).

Last modified: 28 March 2024