簡體   English   中英

我可以使用動態鏈接嵌入我的C / C ++項目嗎?

[英]Can I embed go to my C/C++ project using dynamic linking?

以python為例,C / C ++程序可以動態加載libpython.so並創建python VM,然后將用戶腳本饋送到python VM。

他們的使用方式像這樣嗎? 即,從用戶的系統環境動態加載它。

我們想嵌入到項目中進行腳本編寫,但是我們不想將其打包到最終的二進制程序中。

謝謝。

在某些平台(例如Linux)上,您可以使用-buildmode=c-shared來構建Go代碼,以獲得共享庫,然后可以將該庫鏈接到以另一種語言(如C)編寫的程序中。

一些示例和文檔在這里: https : //github.com/vladimirvivien/go-cshared-examples

請注意,這不會使Go成為腳本語言-您仍然需要從Go代碼構建共享庫。 但是,可以想象的是,可以在應用程序運行時構建它們,並使用dlopen()dlsym()加載它們。 這與通過從應用程序內部啟動C編譯器然后加載它來編譯C代碼的方式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM