gpt4 book ai didi

python - SWIG:您能否使用 SWIG 仅使用 C++ 头文件使 C++ 在 Python 中可用?

转载 作者:行者123 更新时间:2023-11-30 05:25:42 25 4
gpt4 key购买 nike

我正在尝试学习如何使用 SWIG,并且想知道我是否正在执行一些不需要执行的额外步骤。我目前有文件 Dog.cpp、Dog.h 和 Dog.i。我正在尝试使用 SWIG 包装 Dog.cpp 以便在 Python 中使用。我的接口(interface)文件 Dog.i 如下所示:

%module Dog
%{
#include "Dog.h"
%}

%include "Dog.h"

我目前通过在命令行上执行以下步骤来创建 python 包装器:

swig -c++ -python Dog.i

g++ -fpic -c 狗.cpp

g++ -fpic -c Dog_wrap.cxx -I/usr/include/python2.7

g++ -shared Dog.o Dog_wrap.o -o _Dog.so

我的问题是,有没有办法在完全不引用 Dog.cpp 的情况下创建 python 包装器?例如,如果我不知道 Dog.cpp 的位置,有没有办法让事情正常进行?谢谢!

最佳答案

My question is, is there a way to create the python wrapper without referencing Dog.cpp at all?

只有创建两个 DLL/共享库才能做到这一点。一个 DLL/共享库可能具有对应于 toe Dog.cpp 的目标代码,而第二个 DLL/共享库可能具有 Python 包装器代码。

如果您想创建一个 DLL/共享库或可执行文件,则必须将 Dog.cpp 中的目标代码与 Python 包装器中的目标代码链接起来。

Python 包装器代码以这种方式命名是有原因的。它只是 Dog.cpp 中代码的包装器。

关于python - SWIG:您能否使用 SWIG 仅使用 C++ 头文件使 C++ 在 Python 中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38132125/

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