You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows下用Vcpkg引入llama.cpp到C++项目时CMake配置报错求助

问题分析与解决:CMake配置阶段LLAMA_BIN_DIR目录不存在

可能的原因及对应解决方法

原因1:Vcpkg安装的llama.cpp包默认不构建二进制文件

部分vcpkg端口的llama.cpp仅安装库文件,不会自动生成bin目录下的可执行文件,导致LLAMA_BIN_DIR指向的路径不存在。

  • 解决:修改vcpkg.json,为llama.cpp添加bin特性,强制构建二进制文件:
{
  "dependencies": [
    {
      "name": "llama.cpp",
      "features": ["bin"]
    }
  ]
}
  • 重新执行vcpkg install,让vcpkg重新构建包含二进制文件的llama.cpp包。

原因2:CMakeLists.txt错误引用未定义变量

LLAMA_BIN_DIR并非vcpkg提供的llama.cpp包导出的标准变量,若直接引用会导致路径无效。

  • 解决:改用vcpkg导出的官方目标或手动拼接路径:
    1. 若需调用llama.cpp的工具(如llama-cli),优先通过find_package获取目标路径:
find_package(llama.cpp REQUIRED)
if(TARGET llama.cpp::llama-cli)
  get_target_property(LLAMA_CLI_PATH llama.cpp::llama-cli LOCATION)
endif()
  1. 若需直接指定bin目录,可基于vcpkg安装路径手动拼接:
set(LLAMA_BIN_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin")

原因3:Vcpkg的llama.cpp端口配置缺失二进制安装逻辑

部分旧版本的llama.cpp vcpkg端口未配置二进制文件的安装步骤,导致bin目录未生成。

  • 解决:
    1. 更新vcpkg到最新版本:执行vcpkg updatevcpkg upgrade
    2. 若更新后仍无效,手动修改vcpkg端口文件(路径:vcpkg/ports/llama.cpp/portfile.cmake),添加二进制安装逻辑:
install(DIRECTORY "${CURRENT_BUILDTREE_DIR}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
install(DIRECTORY "${CURRENT_BUILDTREE_DIR}/debug/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
  1. 执行vcpkg install llama.cpp --clean-build强制重新构建包。

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

火山引擎 最新活动