Python调用C\C++

作者: 肥宅_Sean | 来源:发表于2017-10-27 08:24 被阅读323次

    之前在Python的专题中看到了很多大佬都在说Python可以做为胶水语言,一直不理解。
    昨晚在网上看到一篇文章,详细的介绍了该怎么用Python去调用C语言的文件,点醒了我。
    特在此做一下笔记
    首先,将.c或者.cpp文件编译成.so文件
    操作如下:gcc .c文件名加后缀 -shared -o 导出文件名加后缀
    例如:(我用的是mingw32,原因可以看我的gcc: error: CreateProcess: No such file or directory解决方案 如果你是可以直接用gcc的就直接用gcc就好了)

    c
    同理,要是你是.cpp文件g++ .cpp文件名加后缀 -shared -o 导出文件名加后缀
    cpp

    Python运行代码如下:

    import time
    from ctypes import *
    def main():
        start_time = time.time()
        result = cdll.LoadLibrary("E:/Code/c语言/test/1.so")
        result.main()
        result = cdll.LoadLibrary("E:/Code/c语言/test/2.so")
        result.main()
    
    if __name__ == "__main__":
        main()
    

    效果如下


    运行效果

    原c和cpp文件如下:
    .c文件

    #include <stdio.h>
    int main(){
        printf("hello world! In C \n");
    } 
    

    .cpp文件

    #include <iostream>
    using namespace std;
    int main(){
        cout << "hello world! in CPP"<< endl; 
    } 
    

    相关文章

      网友评论

      • seel_book:那么问题来了,为什么大家都在说Python可以做为胶水语言呢?:no_mouth:
      • 肥宅_Sean:学习的时候打了一些码,最后提交的时候还是没有细细检查。:joy: 代码中其实有蛮多句话都是可以不用的

      本文标题:Python调用C\C++

      本文链接:https://www.haomeiwen.com/subject/rxtrpxtx.html