我已经成功地用C扩展了我的python代码,如下所示:
Call a Python function from within a C program
我已经编译了代码并创建了一个.dll。但是,当我使用dependencywalker打开它时,我发现它仍然需要python代码。我希望dll是独立的,这样它就不依赖于脚本.py了。我以为在g++中使用标记-static就足够了,但它对我不起作用。
发布于 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++代码将是棘手的。
还可以考虑使用RefPerSys或ANTLR等工具生成C或C++代码,或者用Python语言编写C或C++代码生成器。
也许可以对C源代码使用静态源代码分析器(如Frama-C或Bismon)。
请注意,C和C++是不同的 programming languages。请参阅this和n1570以及n3337或更好的版本。
PS。对于Bismon或RefPerSys,请通过电子邮件联系我到basile@starynkevitch.net和basile.starynkevitch@cea.fr,但请在电子邮件中提到您的问题的网址。
https://stackoverflow.com/questions/67241368
复制相似问题