目录
包管理工具
当我们需要使用别人开发的库时,可能会需要去下载其源码然后编译再引入我们的项目,这样做的话一来引用的库多了比较麻烦,而且需要自己管理这些包,二来一旦迁移到其他机子上就得复制过去或是再下载编译一次,尤其对跨平台项目来说简直苦不堪言,因此会有包管理工具的出现。
vcpkg
它是由微软开发的,可以像安装普通软件一样地安装库,而且和visual studio/cmake很契合,在win和linux都可用。
安装
- 先找一个你希望安装vcpkg的位置,这里使用ubuntu示例,路径选在/home/coolight/app
- 打开控制台,来到上述路径,然后执行命令(需要先安装git,请忽略命令前的 $ ):
$ git clone https://github.com/microsoft/vcpkg
- 由于网络原因,可能会拉取失败,如果你能搭梯子最好,不能的话就多试几次或者换wifi/移动数据等尝试。
- 下载完成后在当前目录下就会有一个叫vcpkg的目录
- 进入vcpkg目录,注意它有两个文件:
- bootstrap-vcpkg.sh:linux系统请执行这个文件(执行命令 ./bootstrap-vcpkg.sh )
- bootstrap-vcpkg.bat:win系统请执行这个文件(双击打开或执行命令 bootstrap-vcpkg.bat)
- 执行完后就会出现上图中最后的那个vcpkg可执行文件,win系统下为vcpkg.exe。至此就安装完成了
- 当然目前只能在这个目录运行vcpkg来安装、升级等操作,设置环境变量即可在任意地方都可以运行。
常用命令
搜索库
- ./vcpkg search [库名]
- 搜索可安装的包,示例:
安装库
- ./vcpkg install [库名]:[位数-系统环境] [可选参数]
- 位数有x86和64;x86即32位,x64即64位。可以省略,win下默认安装32位,linux下默认安装64位。
- 系统环境可以是windows,linux等,可以省略,默认会安装当前系统环境对应的库,可以通过命令查看:./vcpkg help triplet
- win下默认会安装x86版本,而linux下默认是x64。可以设置环境变量修改这个默认安装的版本:
- VCPKG_DEFAULT_TRIPLET=x64-windows
- -
- 可选参数有很多,比如:
- --head,安装库的最新的版本
- --dry-run,不做任何实质上的下载安装,仅显示将要被安装的库的名称和版本信息
- ......
- 例如:
- 安装spdlog:./vcpkg install spdlog
- 安装openssl并指定安装win的64位:./vcpkg install openssl:x64-windows
- 可选参数有很多,比如:
卸载库
- ./vcpkg remove [库名]
- ./vcpkg remove --outdated 卸载所有过期的库
列出已安装库
- ./vcpkg list
集成到开发环境
- ./vcpkg integrate install
- 需要执行这一句才能“通知”到vs或是cmake使用这些安装的库
问题
如果使用vcpkg安装库,更新等过程中报错,请一定一定要耐心看它的错误信息,往往它会告诉你解决办法,比如因缺少依赖软件需要安装;因网络问题文件下载失败,需要重试等等。
安装库之后导入使用依然报错
- 可能你没有让vcpkg集成过去,需要执行:./vcpkg integrate install
- 如果使用的是cmake,安装后还需要在项目的CMakelist.txt配置相应的编译链接,这些一般在vcpkg安装库完成后会提示:
如何重装/卸载vcpkg
- 我一直是直接把整个vcpkg文件夹删了就是卸载了,然后重新走一次教程安装就是重装
ubuntu下安装ICU一直在最后出错
- 其实第一次出错的时候有提示说需要一个叫autoconf的程序但还没安装找不到
- 但我执行 sudo apt install autoconf 之后还是出错
- 后来根据vcpkg的提示去看了错误日志文件:[vcpkg root]/buildtrees/icu/config-x64-linux-dbg-err.log
- 里面就提示错误是因为找不到 autoconf-archive
- 因此执行sudo apt install autoconf-archive 安装上再运行vcpkg重新安装ICU就成功了
zithromax order online uk: zithromax buy – buy zithromax without prescription online
https://pharmindia.online/# indianpharmacy com
buying prescription drugs in mexico: purple pharmacy mexico price list – mexico drug stores pharmacies
canada prescription online no prescription pharmacy online canada mail order prescriptions
best canadian pharmacy: best canadian online pharmacy reviews – canada pharmacy reviews
http://pharmworld.store/# no prescription needed pharmacy
https://pharmcanada.shop/# canadian pharmacies compare
world pharmacy india: reputable indian pharmacies – Online medicine home delivery
canadian discount pharmacy canadian pharmacy canadian pharmacy 24 com
http://pharmworld.store/# canadian pharmacy coupon
buy meds online no prescription: canadian prescription drugstore reviews – best website to buy prescription drugs
safe canadian pharmacy: pharmacy canadian superstore – canadian discount pharmacy
ed drugs online from canada canada drugs online review canadian neighbor pharmacy
https://pharmcanada.shop/# canadian pharmacy uk delivery
canadian family pharmacy: buy prescription drugs from canada cheap – canadian online drugs
no prescription medicines canada mail order prescriptions online pharmacy that does not require a prescription
mexican rx online: mexican online pharmacies prescription drugs – mexican pharmaceuticals online
https://pharmmexico.online/# buying from online mexican pharmacy
canadian pharmacy phone number: reliable canadian online pharmacy – canadianpharmacymeds
purple pharmacy mexico price list mexico pharmacy mexico pharmacy
top online pharmacy india: indianpharmacy com – online shopping pharmacy india
online shopping pharmacy india indianpharmacy com best india pharmacy
https://pharmcanada.shop/# canada pharmacy online legit
mexican pharmacy: mexico drug stores pharmacies – mexico drug stores pharmacies
http://pharmcanada.shop/# canadian online drugs
Cenforce 100mg tablets for sale: Buy Cenforce 100mg Online – Cenforce 100mg tablets for sale
Vardenafil buy online Vardenafil online prescription Buy Levitra 20mg online
https://cenforce.pro/# cheapest cenforce
https://cialist.pro/# Cheap Cialis
Cheap Cialis: Generic Tadalafil 20mg price – Cialis 20mg price
buy Levitra over the counter: Vardenafil online prescription – Levitra online pharmacy
п»їLevitra price Vardenafil online prescription п»їLevitra price
https://kamagra.win/# Kamagra Oral Jelly
Order Viagra 50 mg online: Cheapest place to buy Viagra – Sildenafil 100mg price
https://cenforce.pro/# cenforce for sale
Kamagra 100mg price kamagra oral jelly buy kamagra online usa
https://levitrav.store/# Generic Levitra 20mg
buy Levitra over the counter Cheap Levitra online Levitra online USA fast
Buy generic Levitra online: levitrav.store – Buy Levitra 20mg online
buy cialis pill: buy cialis overseas – Buy Tadalafil 5mg
https://viagras.online/# over the counter sildenafil
Kamagra 100mg buy kamagra online Kamagra 100mg price
cenforce.pro: Buy Cenforce 100mg Online – Buy Cenforce 100mg Online
https://kamagra.win/# cheap kamagra
buy Viagra over the counter Cheap Viagra 100mg Cheap Sildenafil 100mg
https://levitrav.store/# Vardenafil online prescription
https://levitrav.store/# Buy Levitra 20mg online
best price for viagra 100mg: Buy generic 100mg Viagra online – cheap viagra
психолог на авито w-495.ru
ciprofloxacin 500mg buy online buy cipro online without prescription ciprofloxacin order online