为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Windows 中使用 github.com/AllenDang/giu 和 github

如何在 Windows 中使用 github.com/AllenDang/giu 和 github

Go
烙印99 2022-12-19 19:24:04
当我尝试构建一个使用“github.com/gordonklaus/portaudio”和“github.com/AllenDang/giu”的 Go 程序时,我得到了C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running x86_64-w64-mingw32-g++ failed: exit status 1 当我测试使用这些分开的包构建 Go 程序时(“github.com/gordonklaus/ portaudio”和“github.com/AllenDang/giu”)程序正确构建并按预期运行。我想知道它是否与 MINGW4 中编译的 portaudio 有关可重现的例子:import (    "log"    "os"    "os/signal"    g "github.com/AllenDang/giu"    "github.com/go-audio/audio"    "github.com/go-audio/generator"    "github.com/gordonklaus/portaudio")func RunAudio() {    portaudio.Initialize()    defer portaudio.Terminate()    out := make([]float32, 2048)    buf := &audio.FloatBuffer{        Data:   make([]float64, 2048),        Format: audio.FormatStereo44100,    }    //***************************    currentNote := 440.0    osc := generator.NewOsc(generator.WaveSine, currentNote, buf.Format.SampleRate)    osc.Amplitude = 1    osc.Freq = 440.0    sig := make(chan os.Signal, 1)    signal.Notify(sig, os.Interrupt, os.Kill)    stream, err := portaudio.OpenDefaultStream(0, 2, 44100, len(out), &out)    if err != nil {        log.Fatal(err)    }    log.Println("dsp running")    defer stream.Close()    if err := stream.Start(); err != nil {        log.Fatal(err)    }    defer stream.Stop()    for {        if err := osc.Fill(buf); err != nil {            log.Printf("error filling up the buffer")        }        f64ToF32Mixing(out, buf)        // write to the stream        if err := stream.Write(); err != nil {            log.Printf("error writing to stream : %v\n", err)        }    }}func f64ToF32Mixing(dst []float32, buf *audio.FloatBuffer) {    for i := range buf.Data {        dst[i] = float32(buf.Data[i])    }}func loop() {    g.Window("test").Layout(        g.Label("hello world"),    )}func main() {    wnd := g.NewMasterWindow("Hello synth", 700, 700, g.MasterWindowFlagsTransparent)    go wnd.Run(loop)    RunAudio()}
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

错误表明您需要链接您的代码(或依赖项)所依赖的库。

尝试添加这些链接器标志:

  • -lshell32

  • 萝莉32

  • -limm32

  • -lwinmm

  • -脂肪醇

  • - lsetupapi


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号