![](/img/trans.png)
[英]How can I build a C/C++ program using `static linking` & `Dynamic linking` with gcc & Visual studio?
[英]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.