首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C++扩展Python

用C++扩展Python
EN

Stack Overflow用户
提问于 2021-04-24 17:46:00
回答 1查看 76关注 0票数 1

我已经成功地用C扩展了我的python代码,如下所示:

Call a Python function from within a C program

我已经编译了代码并创建了一个.dll。但是,当我使用dependencywalker打开它时,我发现它仍然需要python代码。我希望dll是独立的,这样它就不依赖于脚本.py了。我以为在g++中使用标记-static就足够了,但它对我不起作用。

EN

回答 1

Stack Overflow用户

发布于 2021-04-24 20:14:10

Python文档中有一章是关于Extending and Embedding Python with C的。

有了足够好的编码约定,这可以应用于C++代码。您将使用extern "C"来声明用C++编写的函数,这些函数可从C调用。

注意避免使用throwing a C++ exception to Python代码。

在Linux上,请参阅dlopen(3)dlsym(3)以及C++ dlopen mini howto

Python是开源的。你应该考虑下载its C source code并研究它。

注意Python中的GIL。多线程C++代码将是棘手的。

还可以考虑使用RefPerSysANTLR等工具生成C或C++代码,或者用Python语言编写C或C++代码生成器。

也许可以对C源代码使用静态源代码分析器(如Frama-CBismon)。

请注意,C和C++是不同的 programming languages。请参阅thisn1570以及n3337或更好的版本。

PS。对于Bismon或RefPerSys,请通过电子邮件联系我到basile@starynkevitch.netbasile.starynkevitch@cea.fr,但请在电子邮件中提到您的问题的网址。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67241368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档