目前我使用了 rust + gstreamer 开发了一款音视频相关应用,
我如何编译打包所有依赖的 dll 文件到 exe 同一目录,需要手动复制 dll 吗,
因为要依赖 gstreamer dll 非常多,不清除哪些是必要的。
我手动复制 gstreamer 库里面的 dll 到 exe 同文件目录里面还是不行,会有很多依赖相关问题。
还是说客户机器需要单独安装 gstreamer 的环境,这样感觉就走远了。
1
heiher 2023-06-29 18:03:35 +08:00 via Android
可能用到的插件都静态链接
|
3
julyclyde 2023-06-29 18:12:41 +08:00
应该选择操作系统提供的包机制,在里面声明运行时依赖
|
4
ysc3839 2023-06-29 18:24:13 +08:00 via Android
@heiher gstreamer 静态链接似乎有点麻烦,可能这也是其不如 FFmpeg 流行的原因。抛开这个因素,个人觉得 gstreamer 还是比 FFmpeg 简单直观很多的。
|
5
SenseHu 2023-06-29 19:42:37 +08:00
老哥也是音视频领域的? 可以交流交流 vx sense_hu
|
6
flyqie 2023-06-29 21:20:32 +08:00
动态链接然后复制 dll
这是唯一的办法, gstreamer windows 部署起来确实挺绝望的。。 |
7
zwzwzwzwzxt 2023-06-29 23:31:12 +08:00
微软自家有个工具叫 [Process Explorer]( https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer),可以在程序运行的时候查看其所有依赖的 DLL 路径。看哪些是非系统自带的就通通拷贝到 exe 目录下。
当年刚学 Qt 的时候百试百灵,后来才知道原来 Qt 自带部署的工具( |
8
horou OP |
10
zzl22100048 321 天前
我在用你的 airplay-protocol ,是不是没实现 ANNOUNCE ,我想用 Symphonia 做 alac 解码,没找到 fmtp 信息
|
11
horou OP @zzl22100048 看我的 kircast_desktop 仓库
|