You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无install目标的GitHub C++库能否通过vcpkg使用?

在vcpkg中集成无install目标的cpp-dotenv库

当然可以通过自定义vcpkg port实现,无需修改或fork原仓库,以下是具体步骤:

1. 创建自定义port目录

在你的vcpkg安装目录下的ports文件夹中,新建一个名为cpp-dotenv的子目录,然后在该目录下创建三个必要文件:

portfile.cmake

这个文件负责下载源码、编译并手动复制库文件(因为原库没有install目标):

vcpkg_from_github(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO laserpants/dotenv-cpp
    REF v4.0.0  # 替换为你需要的版本号
    SHA512 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef  # 替换为对应版本的SHA512哈希值
    HEAD_REF master
)

vcpkg_cmake_configure(
    SOURCE_PATH "${SOURCE_PATH}"
)

vcpkg_cmake_build()

# 复制头文件到vcpkg的include目录
file(COPY "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}/include")

# 根据目标系统复制编译后的库文件
if(VCPKG_TARGET_IS_WINDOWS)
    file(COPY "${SOURCE_PATH}/build/Debug/dotenv.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
    file(COPY "${SOURCE_PATH}/build/Release/dotenv.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
else()
    file(COPY "${SOURCE_PATH}/build/libdotenv.a" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
    file(COPY "${SOURCE_PATH}/build/libdotenv.a" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
endif()

vcpkg.json

定义包的元数据:

{
  "name": "cpp-dotenv",
  "version-string": "4.0.0",
  "description": "C++17库,用于读取.env配置文件",
  "homepage": "https://github.com/laserpants/dotenv-cpp",
  "license": "MIT",
  "dependencies": []
}

CONTROL

vcpkg识别包的配置文件:

Source: cpp-dotenv
Version: 4.0.0
Description: C++17库,用于读取.env配置文件
Homepage: https://github.com/laserpants/dotenv-cpp
License: MIT

2. 安装并使用自定义包

在你的项目vcpkg.json中添加依赖:

{
  "dependencies": [
    "cpp-dotenv"
  ]
}

运行vcpkg install,vcpkg会自动下载、编译并将库文件安装到本地缓存,之后就可以在CMake项目中正常链接该库。

注意事项

  • 版本号和SHA512哈希值需要匹配:下载对应版本的源码包后,用vcpkg hash --sha512 <包路径>生成哈希值
  • 如果原库的编译输出路径与示例不同,需调整portfile.cmake中的复制路径
  • 该方法完全基于vcpkg的port机制,无需修改原仓库代码

原仓库中「添加vcpkg支持」的请求内容翻译:
希望能为dotenv-cpp添加vcpkg支持,让用户可以通过vcpkg直接安装该库,无需手动处理依赖和编译流程。目前该库未纳入vcpkg官方仓库,请求维护者或社区贡献者提供对应的port配置,以集成到vcpkg生态中。

内容的提问来源于stack exchange,提问作者Scott Wood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:22:08