• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對(duì)現(xiàn)實(shí),超越自己
            逆水行舟,不進(jìn)則退
            posts - 269,comments - 32,trackbacks - 0
            一、SWIG環(huán)境搭建
             
               1、 下載Swig for Windows:http://www.swig.org/download.html
               2、 解壓 .zip 文件到目錄,比如:D:\backupsoftware
               3、 添加環(huán)境變量到path, 比如: D:\backupsoftware\swigwin-3.0.10
               4、 簡(jiǎn)單測(cè)試安裝是否成功:
               打開Dos,在命令行執(zhí)行: swig --help, 顯示 Target Language Options即表明安裝成功。

            二、以c++為例

            1、編寫c++源文件
            //example.h
            #include <iostream>
            using namespace std;
            class Example{
            public:
            void say_hello();
            };

            //example.cpp

            #include "example.h"

            void Example::say_hello()
            {
                  printf("hello");
            }

            2、再寫一個(gè)swig模塊定義文件如下
            %module example
            %{
            #include "example.h"
            %}
            %include "example.h"

            3、通過命令行運(yùn)行:$ swig -python -c++ example.i

                如果是使用C源碼,則選項(xiàng):$ swig -Python example.i

                這樣會(huì)創(chuàng)建兩個(gè)不同的文件:example_wrap.cxx(如果用c源碼是example_wrap.c),和python文件example.py。


            4、使用python.distutils生成模塊動(dòng)態(tài)庫
            python自帶一個(gè)distutils工具,可以用它來創(chuàng)建python的擴(kuò)展模塊。使用它也很簡(jiǎn)單,只需要先定義一個(gè)配置文件,通常是命名為setup.py,如下:
            #!/usr/bin/env python

            """
            setup.py file for SWIG C\+\+/Python example
            """
            from distutils.core import setup, Extension
            example_module = Extension('_example',
            sources=['example.cpp''example_wrap.cxx',],
            )
            setup (name = 'example',
            version = '0.1',
            author = "www",
            description = """Simple swig C\+\+/Python example""",
            ext_modules = [example_module],
            py_modules = ["example"],
            )

            注:swig生成的擴(kuò)展模塊對(duì)象名必須使用python模塊名并在前面加上下劃線_,剛才我們通過swig生成的python文件是example.py,所以這里的模塊對(duì)象名必須是'_example',否則無法順利編譯。

            5、編譯
            命令行中將當(dāng)前工作目錄切換到文件example.cpp,example_wrap.cxx,example.py,setup.py所在的目錄,然后輸入以下命令:
            python setup.py build_ext --inplace

            會(huì)在本目錄下生成_example.pyd模塊。

            6、測(cè)試
            import examlpe
            example.Example().say_hello()

            :如果導(dǎo)入模塊失敗,需要將模塊所在路徑添加到sys.path中,在次導(dǎo)入就會(huì)成功



            posted on 2016-08-18 11:20 王海光 閱讀(4726) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 腳本
            国产aⅴ激情无码久久| 7777久久亚洲中文字幕| 精品免费久久久久国产一区| 99热成人精品免费久久| 亚洲国产小视频精品久久久三级| 久久精品国产2020| 久久亚洲精品中文字幕三区| 午夜视频久久久久一区 | 亚洲欧美一区二区三区久久| 久久久久亚洲精品天堂| 久久久久一本毛久久久| 久久精品九九亚洲精品| 深夜久久AAAAA级毛片免费看| 久久人爽人人爽人人片AV| 精品99久久aaa一级毛片| 新狼窝色AV性久久久久久| 久久精品国产黑森林| 久久精品国产亚洲AV高清热 | 99久久精品免费看国产免费| 久久久久久精品免费免费自慰| 国产午夜精品久久久久九九电影| 一本一本久久A久久综合精品| 欧美粉嫩小泬久久久久久久| 久久99精品久久久久久野外 | 久久久久亚洲av毛片大| 久久国产乱子精品免费女| 午夜欧美精品久久久久久久| 亚洲一区精品伊人久久伊人| 久久精品三级视频| 四虎国产精品免费久久5151| 国产精品一久久香蕉产线看| 久久精品国产亚洲av影院| 伊人久久大香线蕉综合影院首页| 日韩欧美亚洲综合久久影院Ds| 精品国产综合区久久久久久| 国产精品成人久久久久三级午夜电影 | 久久天天日天天操综合伊人av| 国产成人精品久久一区二区三区av| .精品久久久麻豆国产精品| 国产成人无码久久久精品一| 国产成人精品久久免费动漫|