You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Go-libVLC模块运行故障求助

在Windows下使用libvlc-go遇到的编译及依赖问题

我在Windows系统上运行使用libVLC模块的Go代码时遇到了一系列问题,代码如下:

package main

import (
    "fmt"
    "log"
    vlc "github.com/adrg/libvlc-go/v3"
)

func main() {
    // Initialize libVLC. Additional command line arguments can be passed in
    // to libVLC by specifying them in the Init function.
    if err := vlc.Init("--no-video", "--quiet"); err != nil {
        log.Fatal(err)
    }
    defer vlc.Release()

    // Create a new player.
    player, err := vlc.NewPlayer()
    if err != nil {
        log.Fatal(err)
    }
    defer func() {
        player.Stop()
        player.Release()
    }()
}

报错历程

第一次报错

安装Go和MinGW后运行代码,出现以下错误:

.\main.go:29:19: undefined: vlc.Init
.\main.go:33:15: undefined: vlc.Release
.\main.go:36:21: undefined: vlc.NewPlayer

更新1:启用CGO后的报错

重新安装Go、GCC并添加至PATH,启用CGO后,编译器报错:

# runtime/cgo
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

更新2:更换GCC后的报错

更换为64位TDM-GCC后,输出报错:

# github.com/adrg/libvlc-go/v3
C:\Users\user\go\pkg\mod\github.com\adrg\libvlc-go\v3@v3.1.5\av.go:4:11: fatal error: vlc/vlc.h: No such file or directory
    4 | // #include <vlc/vlc.h>
      |           ^~~~~~~~~~~
compilation terminated.

我猜测是VLC SDK未正确安装,尝试过官方Windows安装步骤但无效,请问该如何解决?


解决方案

1. 解决符号未定义问题

这类错误通常因未启用CGO或依赖未正确编译导致:

  • 在终端执行对应命令开启CGO:
    • Windows cmd:set CGO_ENABLED=1
    • PowerShell:$env:CGO_ENABLED=1
  • 重新执行go mod tidy拉取依赖,再编译代码。

2. 解决64位模式未支持报错

该错误说明GCC版本与Go架构不兼容:

  • 卸载32位MinGW,安装64位TDM-GCC(选择x86_64架构)
  • 将GCC的bin目录添加到系统PATH最前端,避免其他版本干扰。

3. 解决VLC头文件找不到问题

编译器无法定位VLC的头文件和库文件,需正确配置:

  • 安装64位VLC播放器,安装时务必勾选「Install SDK」选项
  • 设置环境变量:
    • LIBRARY_PATH:添加VLC安装目录下的lib路径(示例:C:\Program Files\VideoLAN\VLC\lib)
    • CPATH:添加VLC安装目录下的include路径(示例:C:\Program Files\VideoLAN\VLC\include)
  • 或者编译时直接指定路径:
    go build -ldflags="-L 'C:\Program Files\VideoLAN\VLC\lib'" -gcflags="-I 'C:\Program Files\VideoLAN\VLC\include'"
    
  • 最后,将VLC安装目录下的libvlc.dll和libvlccore.dll复制到项目根目录,或把该目录加入系统PATH,防止运行时找不到动态库。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:02:12