亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在 Go 中創建可嵌入的 C-API 庫?

如何在 Go 中創建可嵌入的 C-API 庫?

Go
瀟瀟雨雨 2021-10-11 10:46:00
我打算編寫一個跨平臺的應用程序,它的大部分功能在所有平臺(Linux、OS X、Windows、iOS、Android)上共享。這些主要是輔助函數(計算、內部列表、網絡等),所以我認為將這些函數放在一個庫中會很方便,我可以為每個平臺編譯,同時仍然能夠為每個平臺單獨創建自定義 UI。我提到的這些平臺上的主要語言是C、Objective-C、C# 和 Java。所有這些語言都支持直接或通過內部包裝器從庫中調用 C-API 函數。由于我不想用 C/C++ 編寫 80% 的應用程序代碼,我搜索并找到了Go。cgo似乎是我的問題的解決方案。我目前的想法是用 Go 編寫核心庫,然后為每個平臺編譯它,但是,調用go build根本不會創建任何東西。我import "C"。我已經聲明了 afunc并添加了//export之前的聲明。我讀過,gccgo但人們一直指出它已經過時,不應使用。也許任何人都可以指出我想法中的缺陷或幫助我將這個庫文件放在一起。提前致謝。
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

如果您的目標是構建一個可以鏈接到任意 C、Objective-C 或 Java 程序的庫,那么您對當前發布的標準工具鏈就不走運了。有計劃在未來改變這一點,但目前 Go 運行時不能嵌入到其他應用程序中。

雖然cgo將允許您導出要從 C 調用的函數,但這僅在您從 Go 調用的 C 代碼需要回調到 Go 的情況下才真正有用。


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號