0
有沒有辦法做到這一點?從Visual C++訪問Golang模塊
- 開發用Golang編寫的庫L1。 L1爲C語言輸出函數。
- 構建L1併爲Visual C++生成.lib文件。
- 通過調用L1中的C函數使用Visual C++代碼中的L1。
有沒有辦法做到這一點?從Visual C++訪問Golang模塊
我從來沒有嘗試過,而且我使用Linux,但這裏是我知道的:
根據the golang documentation你可以編譯Go代碼到共享庫(見去幫助buildmode也)。
爲了能夠從c代碼中調用go功能,go function shall be exported。
爲了編譯Go代碼到一個共享庫,你需要獲得去標準庫複製到共享一個太:
go install -buildmode=shared std
這將編譯所有的轉標準代碼到libstd.so(在Linux上,該名稱可能會在Windows上更改)。
最後,你可以使用下面的命令來獲取您的共享庫:
go install -buildmode=shared -linkshared [packages]
標準共享庫中可以找到:
GOROOT/pkg/GOOS_GOARCH_dylink/
,並在您的共享庫:
GOPATH/pkg/GOOS_GOARCH_dylink/
這是爲了進行部分。
現在,如果您想從C++項目中調用此代碼,則需要創建包裝go庫的C庫。你可以使用一些工具(我聽說過SWIG,但從未嘗試過)。
編輯:你可以做一些類似的靜態去庫,但既然你沒有指定庫類型,你會從C++代碼中使用它,我想你需要一個共享庫。
是從1.5開始。 –
謝謝。你會在這裏爲大家分享網址或其他內容嗎? @JiangYD –