利用SWIG將c 編譯成python可呼叫的包

2021-08-21 22:39:29 字數 2207 閱讀 4747

基本操作可見官方指南:

下面主要為實際複雜點的情況(windows10):

huizi_loc.cpp 檔案內容:

typedef structlocation;

location huizi_loc(char file[256])

huizi_loc.h 檔案內容:

typedef

structlocation;

location huizi_loc(char file[256]);

huizi_loc.i 檔案內容:

%module huizi_loc

%typedef structlocation;

location huizi_loc(char file[256]);

setup.py 檔案內容:

#!/usr/bin/env python

"""setup.py file for swig example

"""from distutils.core import setup, extension

huiuzi_module = extension('_huizi_loc',

sources=['huizi_loc_wrap.cxx', 'huizi_loc.cpp'],

language="c++",

# 此處注意\\,是你怎麼配置vs的就怎麼配置這裡

include_dirs=[

"d:\\opencv\\build\\include\\opencv2",

"d:\\opencv\\build\\include\\opencv",

"d:\\opencv\\build\\include",

"e:\\pdf_parse\\hik_qr_locate\\demo",

"e:\\pdf_parse\\hik_qr_locate\\hik_qrl_src"

],library_dirs=[

"d:\\opencv\\build\\x64\\vc12\\lib",

"e:\\pdf_parse\\hik_qr_locate\\demo",

"e:\\pdf_parse\\hik_qr_locate\\hik_qrl_src"

],# 注意沒有.lib字尾

libraries=[

"opencv_world310",

"kernel32",

"user32",

"gdi32",

"winspool",

"comdlg32",

"advapi32",

"shell32",

"ole32",

"oleaut32",

"uuid",

"odbc32",

"odbccp32",

"hik_qrl_src"]

)setup (name = 'huizi_loc',

version = '0.1',

author = "xu",

description = """huizi_loc""",

ext_modules = [huiuzi_module],

py_modules = ["huizi_loc"],

)

swig -c

++-python huizi_loc.i

此處我用的是anaconda的python,build如下:

d:\anaconda\python.exe setup.py build_ext --inplace
列印:

正在生成**

已完成**的生成

說明成功

在我anaconda下

a.x1完成

如果要在別的地方用,請帶走生成的

huizi_loc.pyc

_huizi_loc.pyd

兩個檔案,即為可用python匯入的檔案

將iconv編譯成lua介面

前一篇博文說了,在cocos2dx中怎麼樣使用iconv轉碼,這節我們將上一節中寫的轉碼函式,做成乙個lua介面,在lua指令碼中使用。luaiconv.h ifndef lua iconv h define lua iconv h include tolua h include tolua eve...

c 下將 cs檔案編譯成dll

呼叫方法 開始 所有程式 microsoft visual studio 2005 visual studio tools visual studio 2005 命令提示 開啟後,輸入csc 檢視編譯選項 注意 要將命名空間也寫進csc裡qnrujym啊 out 輸出檔名 預設值 包含主類的檔案或第...

將Js檔案編譯成dll檔案

1.向專案中新增jscript檔案 script 1.js function doclick1 script 2.js function doclick2 2.解決方案資源管理器中,右鍵檢視script 1.js和script 2.js的屬性,把高階中的 生成操作 屬性設定成 嵌入的資源 3.向as...