有没有专门找装修公司的网站,昆明市网络建设,模拟建筑,深圳建外贸网站公司文章目录 工具链安装管理软件vcpkgvcpkg介绍安装vcpkg 安装gtk遇到的问题Rust其他依赖package-confg 工具链安装管理软件vcpkg
vcpkg介绍
在使用C/C编写项目时, 引用第三方库是很麻烦的事, 需要手动下载源码然后编译最后再添加到项目里#xff0c;配置头文件、lib、dll… 文章目录 工具链安装管理软件vcpkgvcpkg介绍安装vcpkg 安装gtk遇到的问题Rust其他依赖package-confg 工具链安装管理软件vcpkg
vcpkg介绍
在使用C/C编写项目时, 引用第三方库是很麻烦的事, 需要手动下载源码然后编译最后再添加到项目里配置头文件、lib、dll如果是一个简单点的库编译加配置起来也不麻烦可能半个小时或一个上午就能解决如果是一个复杂点的库那可能是一天、乃至一周可能都无法编译成功例如ffmpeg, opensslgRPC等等这些库在windows上的的编译极其麻烦如果是新手可能更痛苦。相比 java有mavenpython有pipgo有go mod, C#有NuGetRust有cargo这些语言在导入第三方库时都很方便修改版本也方便但是对于C项目则很痛苦vcpkg的出现解决了C/C编译第三库困难的问题vcpkg跨平台, 在windows、linux、MacOS都可以使用。安装vcpkg想要使用哪个库vcpkg只要一条命令, 直接用安装编译无需配置头文件、lib、dll, 直接写代码即可十分的方便。 官网https://vcpkg.io
安装vcpkg
1、安装vs英语语言包 vcpkg安装第三方库时会有visual studio的语言不是英语的错误如果不安装英语语言包使用vcpkg安装第三方库时会有如下报错 Error: in triplet x64-windows: Unable to find a valid Visual Studio instance The following VS instances were excluded because the English language pack is unavailable: 例如我的电脑安装的是vs2022社区版需要修改安装增加英语语言包
设置-应用-vs2022 2.clone vcpkg 进入你想安装的文件夹比如D:\vcpkg打开PowerShell命令行执行
git clone https://github.com/Microsoft/vcpkg.git .如果网络不好可能无法clone, 需要有合理良好的网络环境如何访问github请自查。 vcpkag clone 好后执行脚本bootstrap-vcpkg.bat下载vcpkg.exe如下
$ bootstrap-vcpkg.bat安装gtk
如果你的rust环境是gnu的务必切换回msvc
$ rustup default stable-msvc直接在vcpkg上安装gtk最新的vcpkg默认就是gtk4
$ vcpkg install gtk --triplet x64-windows安装好后安装时间很长请耐心等待我等了1个多小时见上图只需要设置两个环境变量
下文的%VCPKGDIR%是你vcpkg的安装目录不要照搬
$ SET PKG_CONFIG_PATH %VCPKGDIR%\installed\x64-windows\lib\pkgconfig
$ SET GTK_LIB_DIR %VCPKGDIR%\installed\x64-windows\lib将vcpkg装好的gtk4库的dll暴露到搜索路径中加入环境变量PATH中
$ SET PATH%VCPKGDIR%\installed\x64-windows\bin;%PATH%然后编写一个Cargo.toml
[dependencies]
gtk { version 0, package gtk4 }就可以用gtk-rs开发了
生成的文件不大release模式编译完加上dll依赖用7z压缩完不到6Mb程序非常小巧。
遇到的问题
一开始我把vcpkg安装到D:\Program Files\vcpkg下出现如下问题
Call Stack (most recent call first):
scripts/cmake/vcpkg_build_make.cmake:151 (vcpkg_execute_build_process)
scripts/cmake/vcpkg_install_make.cmake:2 (vcpkg_build_make)
ports/libiconv/portfile.cmake:39 (vcpkg_install_make)
scripts/ports.cmake:170 ...error: building libiconv:x64-windows failed with: BUILD_FAILED Elapsed time to handle libiconv:x64-windows: 6.5 minlibtool: error: Files/vcpkg/buildtrees/libiconv/x64-windows-dbg/lib/libcharset.la is not a directoryCMake Error at 问题总结 win11下能确定的是D:\Program Files\vcpkg需要管理员权限才能可写至于为什么会出现如上的问题不得而知后来我把vcpkg安装到D:\vcpkg下终于编译安装成功。
Rust其他依赖package-confg
下载package-confg工具pkg-config-lite(zip压缩包我们只需要bin目录下的单文件)并将该可执行文件的目录设置环境变量。