日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 调用 so 库 需要注意的地方

發布時間:2025/7/14 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 调用 so 库 需要注意的地方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ? ?使用C++而不是C來編寫so庫時往往會遇到一些問題,這里著重探討一下linux環境下C++編寫so庫

及python調用so庫需要注意的地方。

test.cc

#include<iostream> extern "C"{ // 重要,因為使用g++編譯時函數名會改變,比方print_msg(const char*)// 會編譯成函數名 print_msg_char,這會導致python調用這個函數的時候// 找不到對應的函數名,這有加了 extern "C",才會以C語言的方式進行// 編譯,這樣不會改變函數名字void print_msg(const char* s){std::cout<<s<<std::endl;}int add_Integer(int a,int b){return a+b;} }

編譯命令:

g++ -shared test.cc -o test.so -fPIC

-fPIC 的參數不能丟,PIC(Position Independent Code)表示生成代碼與位置無關,這樣才能

達到動態鏈接的目的。

script.py

#! /usr/bin/env/python # _*_ encoding : utf-8 _*_from ctypes import *import ossotest = cdll.LoadLibrary(os.getcwd()+ "/test.so")sotest.print_msg("hello,my shared object used by python!")print("4+5=%s" %sotest.add_Integer(4,5))

?

轉載于:https://my.oschina.net/u/2309100/blog/818777

總結

以上是生活随笔為你收集整理的python 调用 so 库 需要注意的地方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。