• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lcpkg: 一个用于管理 Windows C/C++ 项目依赖库的命令行工具

原作者: [db:作者] 来自: 网络 收藏 邀请

LCPkg

npmBuild StatusCoverage Status

(English/中文)

LCPkg (LC's Package Manager) 是一个用于管理 Windows C/C++ 项目依赖的命令行工具。它能够:

  • 从 vcpkg 和 GitHub 安装依赖包
  • 记录你项目的相关信息以及依赖库信息
  • 将资源文件、头文件、库文件打包,方便其他人安装

快速上手

先安装依赖:

然后安装 lcpkg:

npm install -g lcpkg

设置 vcpkg 的根目录路径:

lcpkg config vcpkg.root /path/to/vcpkg

进入你的项目目录:

cd /path/to/your/project

告诉 lcpkg 你的项目信息并创建 lcpkg.json 配置文件:

lcpkg init

使用如下命令安装你需要的依赖包:

lcpkg install sdl2 curl

安装后这些依赖包的文件会被复制到项目目录中的 lcpkg/installed 目录中,目录结构和 vcpkg 的包相似:

x64-windows/    bin        libxxx.dll    debug        bin            libxxxd.dll        lib            libxxxd.lib    include        libxxx.h    lib        libxxx.lib

接下来请修改你的项目的构建配置,将该目录添加到头文件包含目录和附加依赖库目录中,但需要注意的是,release 和 debug 版本的库目录路径不一样,而且有些 vcpkg 构建的 debug 版本的库文件名后面是有 d 字符的,例如:libpng16d.lib,这意味着你可能需要针对 release 和 debug 写两份配置。

导出依赖库

如果你的项目是一个应用程序,其工作目录中需要依赖库的 dll 文件和资源文件,则可以导出它们到工作目录中:

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

也可以指定导出何种 CPU 架构和构建模式的资源文件:

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

打包 C/C++ 库项目

如果你想将自己的 C/C++ 库项目发布给其他开发者使用,你可以打包它:

lcpkg pack

这个命令会打包头文件、库文件等开发所需的文件,然后输出像下面这样的包文件:

dist/yourlib_all.lcpkg.zipdist/yourlib_x86-windows.lcpkg.zipdist/yourlib_x64-windows.lcpkg.zipdist/yourlib_x86-uwp.lcpkg.zipdist/yourlib_x64-uwp.lcpkg.zip

yourlib_all.lcpkg.zip 文件是你项目支持的所有平台和架构版本包的集合, 你可以这样安装它:

lcpkg install /path/to/yourlib_all.lcpkg.zip

如果你的项目是一个开源项目并且托管在 GitHub.com 上,则可以在每次发布发行版时将这些文件上传到发行版附件中,然后告诉你的用户这样安装你的包:

lcpkg install github.com/yourusername/yourlib

yourlib_all.lcpkg.zip 文件的体积通常很大,我们建议你上传除它以外的文件,这样你的用户就不会花费太多时间在下载上。

在本地调试 C/C++ 库项目

lcpkg 的做法和 npm 相似,将本地开发的项目以符号链接的形式映射到全局包目录供应用程序项目使用,但受限于 C/C++ 项目的目录结构和构建工具的依赖查找机制,lcpkg 还需要额外的一些命令去实现依赖包文件的同步。

将 C/C++ 库项目的打包目录符号链接到全局包目录:

lcpkg link

之后在每次构建完该库时重新打包以更新包的文件:

lcpkg pack

并在应用程序项目中更新依赖库的文件:

lcpkg install

常见问题

  • Vcpkg 已经很好用了,为什么要用 LCPkg?

    从现在的情况看来,LCPkg 相当于 Vcpkg 的扩展,没什么值得一用的特色功能,对于作而言,其主要的用途也就是方便其他开发者下载安装 LCUILC Design 的二进制包,但如果你正好符合以下条件,则可以试试 LCPkg。

    • 未使用 vcpkg 管理 C/C++ 依赖库。
    • 有需要发布给其他开发者使用的 C/C++ 库项目。
    • 项目中用的构建工具不是 CMake,懒得花时间学习 CMake。
    • 项目中用到了一些 JavaScript 编写的工具,已安装 Node.js 环境。

贡献

有很多方式参与贡献 LCPkg

本项目采用了参与者公约定义的行为准则,该文档应用于许多开源社区,有关更多信息,请参阅《行为准则》

许可

代码基于 MIT 许可协议 发布。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap