中国用户使用vcpkg时的常见问题及解决办法
vcpkg 是一个开源的 C++ 包管理器,让你可以轻松安装和管理 C++ 库。然而,对于中国的用户来说,可能会遇到以下一些常见问题。
本文档仅包含中国用户在配置使用 vcpkg 时遇到的常见问题及解决方法。vcpkg 的使用方法请参看官方文档 官方文档。
1. GitHub 访问失败
由于vcpkg没有预安装包,需要直接从GitHub下载源码.但是因为以下原因可能会导致国内用户无法访问GitHub或者访问速度较慢:
a. GitHub的服务器位于美国,由于物理距离的原因导致访问速度较慢。
b. 中国的网络审查和防火墙会对GitHub的一些特定的服务进行封锁(如avatars0.githubusercontent.com、camo.githubusercontent.com 等用于加载图片和其他资源的域名),导致访问失败。
c. GitHub作为全球范围内的服务,网站本身存在一些稳定性的问题。
解决方法:
1. 使用代理或者VPN服务。
如果使用代理还是无法访问Github,可以将本地的DNS更改为国内常用的一些公共DNS地址.
2. 更新DNS地址
此方法针对国内的CDN域名遭到DNS污染,导致无法使用GitHub的情况。我们默认从目标网址的最近CDN节点获取内容, 但当节点过远或者DNS指向错误地址错误时,就会造成访问过慢或者失败. 注:DNS污染指:一些刻意或者无意创造出来的数据包,把域名指向不正确的IP地址。
a. 使用工具来确定Ping通的GIitHub的IP地址。
打开 http://ping.chinaz.com/ ,输入github.com点击Ping检测。
稍等几秒后会显示测试结果:
从图中我们可以看出一共测试了95个节点, 包括各个服务商的最快和最慢地区节点。 注意下面的复选框有一个独立IP,这里显示的IP地址就是你本地可以访问的GitHub的IP地址,当然这个IP地址是通过DNS解析的。可以手动Ping这些IP来查看哪一个响应最快。
b. 刷新DNS的缓存
首先进入网址 https://github.com.ipaddress.com/ ,查看GitHub的IP地址 140.82.114.4
点击地址查看详情:
然后进入网址 https://sites.ipaddress.com/fastly.net/ 来确定域名IP
最后在再进入网址 https://sites.ipaddress.com/github.com/ 来确定GitHub的静态IP
在我们拿到这些IP地址后,打开目录 C:\Windows\System32\drivers\etc 找到hosts文件并打开它
在文件的底部加入获取到的IP地址的内容,即:
140.82.114.4 github.com
151.101.1.6 github.global.ssl.fastly.net
151.101.65.6 github.global.ssl.fastly.net
151.101.129.6 github.global.ssl.fastly.net
151.101.193.6 github.global.ssl.fastly.net
14.82.114.4 assets-cdn.github.com
保存并退出。注意这里需要使用管理员权限!
最后我们刷新DNS缓存, 打开CMD,输入 ipconfig/flushdns
2. 使用国内镜像
vcpkg 针对于中国用户还提供了一个可使用的国内镜像 http://106.15.181.5。
使用方法:
设置环境变量:X_VCPKG_ASSET_SOURCES
,值为:x-azurl,http://106.15.181.5
设置完成后重新执行脚本 bootstrap
即可。
3. 中文语言包导致的路径问题
部分中国用户习惯性使用中文的路径作为vcpkg的根目录,这有可能会导致的路径解析错误,纯英文路径和vs英文语言包是使用vcpkg的必要条件之一。
根本原因:在计算机中对于非拉丁文字符表示,不同的编码可能会使用完全不同的值来表示一个字符。因此当一个字符串从一个地方传递到另一个地方时,如果两个地方的编码形式不同则会导致这个字符串被错误的解析。例如 C:\Users\ÌÆ¿\AppData\,因为编码不一致导致中文路径显示为一堆不可读的字符。
解决方法:使用纯英文路径并安装VS英文语言包。
4. 默认系统 utf-8 的文件系统问题
根据 Windows 的不同区域导致的语言问题:
The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss.
如果出现这个问题,请将你的 Windows 语言区域设置为 English。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理