第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go、OpenAL、DirectSound 和 Heisenbug

Go、OpenAL、DirectSound 和 Heisenbug

Go
尚方寶劍之說 2021-08-10 15:30:57
我已經(jīng)花了一周時間試圖解決我的項目中的一個神秘問題,但我已經(jīng)沒有想法了。我寫了一個 Go 包,旨在播放包含 OpenAL 的聲音......非?;镜臇|西。我讓它在我的 Xubuntu 14.04(32 位)上運行,所以我啟動到 Windows(7,也是 32 位)以移植它......這就是問題開始的地方。每當我嘗試使用我的音頻包時,程序都會因 c0000005 而崩潰。我嘗試通過 gdb 運行它并驚訝地發(fā)現(xiàn)它沒有問題,甚至可以播放我的測試聲音。時間過去了,不知道該怎么做,我下載了 OpenAL Soft 源代碼并開始添加 printfs - 并發(fā)現(xiàn)它崩潰的確切行:http://repo.or.cz/w/openal-soft.git/blob/HEAD:/Alc/backends/dsound.c#l361對于那些懶得點擊鏈接的人(或者如果鏈接停止工作),這是對 DirectSoundCreate 的調用。再次運行調試器,我在調用前后看到了我的打印,并且在它們之間創(chuàng)建了 4 個新線程。這些是 Go 文件中的相關內容:package audio/*#cgo CFLAGS: -I"../libraries/include"#cgo windows,386 LDFLAGS: ../libraries/lib/windows/x86/OpenAL32.dll#cgo windows,amd64 LDFLAGS: ../libraries/lib/windows/x64/OpenAL32.dll#cgo linux LDFLAGS: -lopenal#include "audio.h"*/import "C"import (    "errors")var context *C.ALCcontextfunc Init() error {    context = C.initAudio() // it crashes on this line    if context == nil {        return errors.New("could not initialize audio")    }    SetActiveListener(NewListener())    return nil}這是實際進行 OpenAL 調用的 C 文件:#include "audio.h"#include <string.h>#include <stdio.h>ALCcontext* initAudio() {    ALCdevice* device = alcOpenDevice(NULL); // crashes here    if (device == NULL) {        return NULL;    }    ALCcontext* context = alcCreateContext(device, NULL);    if (!alcMakeContextCurrent(context)) {        return NULL;    }    return context;}最后但并非最不重要的一點是,如果我在純 C 中做完全相同的事情(實際上只是將 main 添加到我發(fā)布并調用的文件中initAudio),它就可以工作。我的問題很明顯:#@!$ 發(fā)生了什么?
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

我剛知道Go 1.3.1出來了,所以我嘗試更新......問題消失了。(?。。?/p>

我想這是一個編譯器錯誤。無論如何,感謝所有試圖提供幫助的人,我真的很感激。


查看完整回答
反對 回復 2021-08-10
  • 2 回答
  • 0 關注
  • 263 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號