Skip to content
This repository has been archived by the owner on Jul 18, 2023. It is now read-only.
/ lcpkg Public archive

A command line tool for manage Windows C/C++ project dependencies.


Notifications You must be signed in to change notification settings


Repository files navigation


npm Build Status Coverage Status


LCPkg (LC's Package Manager) is a command line tool for manage Windows C/C++ project dependencies, it is able to:

  • Install dependencies from Vcpkg or GitHub.
  • Save information about your project and its dependencies.
  • Pack resource files, header files and library files into a package file to make your project easier to install.

Quick Start


To get started:

npm install -g lcpkg

Tell lcpkg where the root directory of vcpkg is:

lcpkg config vcpkg.root /path/to/vcpkg

Go to your project directory:

cd /path/to/your/project

Tell lcpkg about your project information:

lcpkg init

Install any packages with:

lcpkg install sdl2 curl

The files in these packages will be copied to the lcpkg/installed directory in the project directory. The directory structure is similar to the Vcpkg package:


Export packages

If your project is an application, and its working directory requires the dll files and resource files of the dependent package, you can export them to the working directory:

lcpkg export --filter runtime /path/to/your/app/workdir

You can also specify which CPU architecture and build mode resource files to export:

lcpkg export --filter rumtime --arch x64 --mode debug /path/to/your/app/workdir

Package C/C++ library project

If your project is a C/C++ library, and want to publish it to other developers, you can package it:

lcpkg pack

This command will output some files like this:


The file includes packages for all platforms and architectures, you can install it like this:

lcpkg install /path/to/

If your project is an open source project and hosted on, you can upload them to the release assets each time you post a release note, and tell your users install it like this:

lcpkg install

The file is usually large, We recommend you upload files other than it, so that users don't have to wait too long for downloading.

Debug C/C++ library project locally

The approach of lcpkg is similar to that of npm. It maps local development projects in the form of symbolic links to the global package directory for application projects, but is limited by the directory structure of C/C++ projects and the dependency search rules of the build tool. Some additional commands are needed to synchronize the dependent package files.

Symlink current package directory to global package directory:

lcpkg link

Then repackage to update the package files every time the library is built:

lcpkg pack

And update the dependent library files in the application project:

lcpkg install


  • Vcpkg is awesome, why should I use LCPkg instead of Vcpkg?

    In the current version, LCPkg doesn't have any appealing features, For the author, its main use is help other developers to download and install the binary packages of LCUI and LC Design. But if you happen to meet the following conditions, you can try LCPkg.

    • Have a C/C++ library project that you need to publish to other developers.
    • The build tool used in the project is not CMake, and you don't want to learn CMake.
    • Some tools written in JavaScript are used in your project, and the Node.js has already been installed.


There are many ways to contribute to LCPkg.

LCPkg has adopted the code of conduct defined by the Contributor Covenant. This document is used across many open source communities, and we think it articulates our values well. For more, see the Code of Conduct.


Code licensed under the MIT License.