首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装VCPKG后,调用"vcpkg install“将导致”更改工作dir失败“。

安装VCPKG后,调用"vcpkg install“将导致”更改工作dir失败“。
EN

Stack Overflow用户
提问于 2019-07-10 18:06:06
回答 1查看 3.8K关注 0票数 0

当我按照VCPKG文档页面中的步骤在.\bootstrap-vcpkg.bat上安装时,注意到的步骤在行.\bootstrap-vcpkg.bat上失败。

具体来说,这些是我遵循的步骤,完全按照上面链接中的说明.

  • 运行Powershell (而不是作为管理员)
  • cd <parent_directory>
  • git clone https://github.com/Microsoft/vcpkg.git
  • cd .\vcpkg\
  • .\bootstrap-vcpkg.bat
  • .\vcpkg integrate install

以上所有步骤似乎都成功了,直到最后一步(红色,下面)。

我看到了以下输出:

(注意:屏幕截图还显示了一个附加的行-我试图在其中安装一个在项目中使用的所需的包-失败时也出现了同样的错误。)

我查看了vcpkg的源代码,发现违规的代码行如下(vcpkg.cpp)所示:

修改vcpkg.cpp源代码以显示缺少的路径,重新生成和测试显示缺少的目录如下:

<vcpkg>/installed/...

...But installed目录在vcpkg根目录中不存在。

因为我遵循vcpkg文档中的基本安装说明,所以我很困惑自己做错了什么,在设置中有什么问题,或者如何处理它。

请有人解释为什么安装VCPKG后调用"vcpkg Changing the working dir failed**?**“会导致错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 00:05:29

VCPKG_ROOT i错误地将环境变量定义为 vcpkg 项目根目录的子目录。

这是一个很容易犯的错误,我在下面描述。

vcpkg可执行文件本身检查VCPKG_ROOT环境变量的存在,如果存在,则使用它的值覆盖运行的vcpkg二进制文件内部使用的vcpkg项目的根文件夹的路径。

我为不同的目的创建了一个同名(VCPKG_ROOT)的环境变量--这样我自己的下游应用程序就可以为vcpkg安装的库提供到include文件的路径。选择名称VCPKG_ROOT是有意义的,因为实际上,在默认情况下,vcpkg会将库安装到自己根目录的子目录中。

具体地说:

  • 如果“vcpkg”项目的根目录是<vcpkg>.
  • 默认情况下,...then可执行文件安装库,以便将已安装的库的包含路径放置在<vcpkg>\installed\...\include\中。

(其他库文件,如二进制文件,也被放置在嵌套在<vcpkg>中的目录中。)

问题是,我将VCPKG_ROOT定义为第二个项目,而不是第一个项目。因此,这是一个很容易犯的错误,因为在这两种情况下选择"VCPKG_ROOT“的名字都是有意义的!

我只是建议通过一个项目改进错误消息-如果被接受,这可能会节省一些其他可怜的灵魂的压力和失去的时间来追踪这个小故障。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56976336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档