gpt4 book ai didi

c++ - 在 Mac OSX 上从 Python 脚本调用 c++ 函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:38:18 27 4
gpt4 key购买 nike

我的 mac 上有一个使用非标准库(在我的例子中是 OpenCV 库)的 c++ 代码,需要编译它以便可以从其他计算机(至少从其他 mac 计算机)调用它。从 python 运行。所以我有 3 个基本问题:

  1. 如何编译我的项目以便可以从 python 中使用它?我读了我应该创建一个 *.so 文件,但是如何创建?
  2. 它应该像库一样工作,所以 python 会调用一些特定的函数,在 python 级别选择?
  3. 或者它应该包含一个 ma​​in 函数,它从命令行?

关于如何做到这一点有什么想法吗? PS:我正在使用 eclipse IDE 来编译我的 c++ 项目。

干杯,

最佳答案

如果您使用 linux,atmaere 和 nouney 的答案可能适合您。

就我而言,当我使用 MacOSX 时,我想通了使用 cython 库的方法。下面描述了使事情正常进行的直接教程:

如何从 Python 脚本调用 C++:

  1. 安装 CYTHON:要安装 Cython,将 python 脚本与 c/c++ 集成的工具,请访问:https://pypi.python.org/pypi/Cython/

  2. 下载示例:从此处下载 C++ 实现示例:http://wiki.cython.org/WrappingCPlusPlus?action=AttachFile&do=get&target=cythoncpp.tgz

  3. 准备 C++ 源文件:确保您的 *.cpp 和 *.h 文件是正确的。在下载的示例中,文件名为cpp_rect.h 和cpp_rect.cpp

  4. CREATE PYTHON WRAPER CPLASS:根据下载示例中的 rectangle.pyx 文件或 http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html?highlight=cpp#create-cython-wrapper-class 中描述的模型

  5. 准备 SETUP.PY 文件:下载的示例已包含在该文件中,但可以在本教程中找到更多信息:http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html?highlight=cpp#specify-c-language-in-setup-py . [PS:1 最简单的编译方法是使用 disutilis 包,使用 setup.py 文件。有关编译选项的更多信息,请访问 http://docs.cython.org/src/reference/compilation.html# .

  6. 尝试编译:从源文件所在的同一文件夹转到终端。此时您已经拥有 4 个文件:cpp_rect.h、cpp_rect.cpp、rectangle.pyx 和 setup.py。从那里,执行命令 $ python setup.py build_ext --inplace

  7. 如果您收到 g++ 错误,例如我遇到的错误:“无法执行 gcc-4.2:没有这样的文件或目录”,您可以通过 sudo ln -s/usr 破解标志系统/bin/gcc/usr/bin/gcc-4.2.然后重复上一步。

  8. 测试您的代码:此刻,您拥有所需的一切:setup.py 与 rectangle.pyx 一起用于生成 rectangle.so 文件,这正是我们所需要的!只需构建一个 pythons 脚本来测试您的集成。幸运的是,该示例已经包含一个名为 use_rect.py 的测试脚本。

现在只需使用“$ python userect.py”从终端运行它

关于c++ - 在 Mac OSX 上从 Python 脚本调用 c++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com