建立一c++檔案:如test1.cpp(這個簡單的例子隻是輸入兩個數字,再列印出來)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5iYfZ2Y1YjNiFTN5MmMjVjNmNjYmVzMzgTZ1UTNxQzNyYGOtIjdvwVbvNmLn1WaopnL0MWaw9CXvwlOzBHd0hWPsJXdmYDM3YjZkJGNzQDNl1SOhRGOtETMiVWLmJTYl1SMyMTM1UzYh1DZpV3ZmITPlBXe0ZyPldWYtl2LcdXZpZ3Lc12bj5SZjVjL5h3byBnLzATLn1Wavw1LcpDc0RHaiojIsJye.jpg)
在cmd視窗中進入該檔案所在目錄,輸入:
g++ -o test1.so -shared -fPIC test1.cpp
-shared 該選項指定生成動态連接配接庫(讓連接配接器生成T類型的導出符号表,有時候也生成弱連接配接W類型的導出符号),不用該标志外部程式無法連接配接。相當于一個可執行檔案。
-fPIC:表示編譯為位置獨立的代碼,不用此選項的話編譯後的代碼是位置相關的是以動态載入時是通過代碼拷貝的方式來滿足不同程序的需要,而不能達到真正代碼段共享的目的。
會生産一個test1.so 動态連結庫檔案。
使用者應注意使用這個方法在windows下編譯的so動态連結庫檔案不能直接在linux下調用。想在linux中調用so檔案,需要在linux環境下進行編譯。
在Python腳本裡添加
其中ctypes是Python的一個庫,提供和C語言相容的資料類型,可以很友善地調用C DLL中的函數。
運作以上腳本得到:
顯示調用C++程式成功。
采用這個方法,我們不用進行大量的改寫,也能在Python中使用我們積累的各種C++程式了。