WindowsLinuxmacOS

Where Does vcpkg Install Packages?

vcpkg lays out headers and libs per triplet under installed. Classic vs manifest roots and the layout inside.

Last updated

vcpkg installs each package into a triplet folder. In classic mode the root is <VCPKG_ROOT>/installed, so x64-windows headers land in installed/x64-windows/include with libs in lib and DLLs in bin. Debug variants mirror under debug.

Manifest mode instead writes next to your project in vcpkg_installed. Both layouts share the same per triplet tree. Override the root with --x-install-root when the default disk is tight. The toolchain file at scripts/buildsystems/vcpkg.cmake wires CMake to whichever root you use.

Where vcpkg stores this, by platform

Windows
%VCPKG_ROOT%\installed

Classic root; per triplet below it, e.g. installed\x64-windows\include and \bin. Manifest projects use vcpkg_installed beside vcpkg.json instead. Copy DLLs from bin next to your exe or extend PATH.

Linux
$VCPKG_ROOT/installed

Same triplet tree on Linux and macOS. pkgconfig files sit in lib/pkgconfig or share/pkgconfig per package. --x-install-root relocates the whole tree when needed.

macOS
$VCPKG_ROOT/installed

Same layout as Linux. Homebrew style moves of the vcpkg root break nothing as long as VCPKG_ROOT and the toolchain path follow it.

Frequently asked questions

classic vs manifest mode folders in vcpkg

Classic shares one installed tree under the vcpkg root across projects. Manifest gives each project its own vcpkg_installed folder pinned by vcpkg.json. Prefer manifest for reproducible builds; classic is faster for casual installs.

where are vcpkg dlls for my exe

Under installed/<triplet>/bin for release and debug/bin for debug. Either copy them beside your binary or prepend that bin dir to PATH before running.

Notice an outdated path? Let us know.