我打算編寫一個跨平臺的應用程序,它的大部分功能在所有平臺(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 的情況下才真正有用。
- 1 回答
- 0 關注
- 215 瀏覽
添加回答
舉報
0/150
提交
取消