centos swig 編譯c,python呼叫

2021-07-04 07:34:34 字數 1488 閱讀 7732

swig是個幫助使用c或者c++編寫的軟體能與其它各種高階程式語言進行嵌入聯接的開發工具。swig能應用於各種不同型別的語言包括常用指令碼編譯語言例如perl, php, python, tcl, ruby and php。

最新的版本已經開始支援golang了。

tar -zxvf swig-3.0.6.tar.gz

cd swig-3.0.6

./configure

make

make install

#python 需要安裝開發包

yum install python-devel

首先建立example.i 介面檔案:

/* example.i */

%module example

% extern

double my_variable;

extern

int fact(int n);

extern

int my_mod(int x, int y);

extern

char *get_time();

編寫介面的實現檔案example.c:

/* file : example.c */

#include

double my_variable = 3.0;

int fact(int n)

int my_mod(int

x, int

y) char *get_time()

{ time_t ltime;

time(return ctime(編譯python模組:

#編譯python模組,會生成乙個

swig -python example.i

編譯c檔案,和wrap檔案,使用python庫編譯

gcc -c -fpic example.c example_wrap.c -i/usr/include/python2.7

#生成共享庫

ld -shared example.o example_wrap.o -o _example.so

測試python模組:

>>> 

import example

>>> example.fact(5)

120>>> example.my_mod(10,30)

10>>> example.get_time()

'mon aug 3 05:25:35 2015\n'

>>> example.get_time()

'mon aug 3 05:25:37 2015\n'

>>> example.get_time()

'mon aug 3 05:25:38 2015\n'

swig 非常方便的實現了python的模組擴充套件,可以將現有的c,c++庫封裝成模組提供給python呼叫。

網線線序 cpy

平時我們用的網線是屬於直連型,也就是說一一對應的,如一端是568b標準的線序 1 白橙 2 橙3 白綠 4 藍5 白藍 6 綠7 白棕 8 棕另一端也是568b標準的線序,這樣的話我們用水晶頭連線起來網線就用於hub,路由器等的連線而如果我們要兩台電腦互相用網線連線的話,則需要反線 交叉線 即一端採...

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

核心編譯 模組編譯

目前是嵌入式 linux 的初學者感覺有所體會 1.從demo 學起 tiny 6410 上的開發,我的任務不斷是新增小模組。交叉編譯器,以及其它一系列 tool chains 可直使用產商提供的工具。避免過多細節的好處在於,你可以從整體處著手你從書本學到的理論知識。2.kernel 編譯其它很簡單...