-
Notifications
You must be signed in to change notification settings - Fork 114
如何 vcpkg 集成到 emake 中?
Linwei edited this page Aug 29, 2024
·
1 revision
有两种方式导入 vcpkg 中安装的包
由于 vcpkg 安装的包都是位于:
D:\vcpkg\installed
目录下面的,那么最简单的集成方式就是在 emake.ini
配置里写上 vcpkg 的 include/lib 目录即可:
[default]
include=d:\vcpkg\installed\x86-mingw-dynamic\include
lib=d:\vcpkg\installed\x86-mingw-dynamic\lib
具体是 x86-mingw-dynamic
还是 x86-mingw-static
要看你 vcpkg install 时候 triplet 设置的是啥,比如:
vcpkg install --triplet=x86-mingw-static {package_name}
则会安装到 vcpkg\installed\x86-mingw-static
下面。
再完善一点,还可以考虑 debug/release 两种配置:
[default]
include=d:\vcpkg\installed\x86-mingw-dynamic\include
lib@release=d:\vcpkg\installed\x86-mingw-dynamic\lib
lib@debug=d:\vcpkg\installed\x86-mingw-dynamic\debug\lib
那么在不同 profile
下面就会用到不同的 -L
目录,然后在你项目的工程文件里:
link: ogg, opus
连接这些包的 .a
文件就行。
使用 pkg-config
管理 vcpkg 里的包,由于 vcpkg 的包安装都会在 lib\pkgconfig
里创建 .pc
的文件,就可以直接用 pkg-config
来依赖分析和包导入了,继续修改 emake.ini
:
[default]
pkgconfig=d:\path\to\pkg-config.exe
pcflag=--env-only
environ=PKG_CONFIG_PATH=d:\vcpkg\installed\x86-mingw-dynamic\lib\pkgconfig
其实就是用 environ
定义了环境变量 $PKG_CONFIG_PATH
指向 vcpkg 各个包的 .pc
文件目录,然后用 pcflag
给 pkg-config
加一个 --env-only
的参数,意思是只分析 $PKG_CONFIG_PATH
里指向的包。
然后在你项目的工程文件里:
package: ogg, sqlite3, libpng, zlib, miniz
package: de256, x265
package: python3
就能直接导入包了,不用一个包一个包的去配置各自的库文件和 include 路径,用起来比较方便。