See Known issues for the corresponding tickets in CLion tracker.
Install vcpkg
tip
Vcpkg will be installed on your system. You can have multiple instances of vcpkg installed, each with a different set of packages.
Also, you can have multiple projects linked to one vcpkg repository.
Select View | Tool Windows | Vcpkg from the main menu to open the Vcpkg tool window.
Click :
Specify the installation settings in the Add Vcpkg Repository dialog:
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
note
This option is only available for CMake projects.
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.
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.
tip
If vcpkg is not linked to any profile, you will see it greyed out. Use the Edit vcpkg dialog () to link it to a profile.
Browse and install packages
note
The option to select a particular version is not implemented yet (CPP-32366). Only the latest package version can be installed.
To find a particular package, start typing its name in the search field:
Select the package and press Enter or click Install in the right-hand pane.
In classic mode, if the package was installed successfully, CLion will prompt you to add it to vcpkg.json and switch to manifest mode:
You can find the installed package under Installed | Classic Mode or Added | Manifest Mode.
note
Classic mode displays all packages that are in the repository, while manifest mode displays the packages that are added to vcpkg.json.
Classic mode
Manifest mode
Switch to manifest mode
note
CLion switches to manifest mode automatically if there is a vcpkg.json file under the project root.
Note that classic mode and manifest mode are mutually exclusive.
Click the Switch to Manifest Mode button:
Select the packages to be added to vcpkg.json:
CLion will create a vcpkg.json file, add the packages, and switch the project to manifest mode:
Investigate console output
Console: vcpkg is a read-only tab that shows all vcpkg commands with full output.
tip
Use the up and down arrows to jump between commands:
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.
You can switch to the Console tab at any time while working with vcpkg. The tab is also accessible via the Show Console button.
Install/remove multiple packages
Select several packages in the tree.
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.
If there is a hint from vcpkg, you will see the Add packages to CMakeLists.txt option in the notification:
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.
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.
Upgrade All updates the vcpkg Git repository to the latest version and then updates all installed packages to their latest versions.
Check for Updates (the menu) checks whether there is a newer version of the vcpkg Git repository.
Update Repository (the menu) checks the current version of the vcpkg Git repository for available package updates.
Upgrade Repository (the menu) checks the current version of the vcpkg Git repository for available package updates and installs them.
Update Vcpkg Repository (the 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:
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.
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:
CLion will suggest to install the missing package:
In case there are multiple candidates for installation, open the list from the Fix menu:
Select the package to install in the dialog:
tip
Fix also works for the profiles not linked to the package manager.
Force the use of system CMake and Ninja
You can force vcpkg to use CMake and Ninja from the profile environment.
Click the Edit vcpkg button in the left-hand pane:
Expand the Advanced Settings section and set the Use system binaries checkbox:
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.
Click Fix in the error message:
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).
Our website uses some cookies and records your IP address for the purposes of accessibility, security, and managing your access to the telecommunication network. You can disable data collection and cookies by changing your browser settings, but it may affect how this website functions. Learn more.
With your consent, JetBrains may also use cookies and your IP address to collect individual statistics and provide you with personalized offers and ads subject to the Privacy Notice and the Terms of Use. JetBrains may use third-party services for this purpose. You can adjust or withdraw your consent at any time by visiting the Opt-Out page.