是否可以動(dòng)態(tài)加載外部C庫(dll)并在Go中調(diào)用其函數(shù)?我知道有cgo哪些用于靜態(tài)綁定到C函數(shù),但是我對動(dòng)態(tài)方式感興趣。
1 回答

森欄
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
簡短的回答:不。(至少不是與gc一起使用,但是gccgo是gcc可鏈接的,所以可能)
中等答案:但是,您可以靜態(tài)綁定libffi或libdl,然后使用它來動(dòng)態(tài)加載其他庫。
長答案:您可以使用go工具鏈C編譯器和匯編器在C和ASM中編寫go軟件包(例如,參見src / pkg / runtime)。因此,您可以使用Go或C或ASM編寫FFI。
編輯:從下面的評論(現(xiàn)在也是CW)
另外,也可以使用syscall
和unsafe
軟件包來完成此操作(在Windows中很容易,但是我想在Linux中會(huì)更困難,并且與上面的第三個(gè)解決方案相距不遠(yuǎn))。
http://code.google.com/p/go/wiki/CallingWindowsDLLs
- 1 回答
- 0 關(guān)注
- 318 瀏覽
添加回答
舉報(bào)
0/150
提交
取消