Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Python服务器连接到后端C++;_Python_C++_Linker_G++_Swig - Fatal编程技术网

将Python服务器连接到后端C++;

将Python服务器连接到后端C++;,python,c++,linker,g++,swig,Python,C++,Linker,G++,Swig,摘要: 我有一个服务器,使用的是BottlePy,它为我正在开发的应用程序提供了一个web界面。后端是用C++编写的,因为原始前端使用GTK+ 3编写。由于它是使用GTK+3编写的,前端有很多信号要发送到后端以触发后端功能。我想让我的Python服务器发送这些相同的信号到C++后端。 方法: 我不知道如何开始将脚本语言连接到C++,特别是动态请求和信令,所以我做了一些拨弄,我了解了。据我所知,SWIG创建了一个包装器/接口,作为Python和另一种语言(在我的例子中是C++)之间的“桥梁”。我按

摘要:
我有一个服务器,使用的是BottlePy,它为我正在开发的应用程序提供了一个web界面。后端是用C++编写的,因为原始前端使用GTK+ 3编写。由于它是使用GTK+3编写的,前端有很多信号要发送到后端以触发后端功能。我想让我的Python服务器发送这些相同的信号到C++后端。 方法:
我不知道如何开始将脚本语言连接到C++,特别是动态请求和信令,所以我做了一些拨弄,我了解了。据我所知,SWIG创建了一个包装器/接口,作为Python和另一种语言(在我的例子中是C++)之间的“桥梁”。我按照教程连接Python模块,然后尝试运行服务器,但没有成功。

采取的步骤:
已将编译行从更改为:
g++-c$(CPPFLAGS)$^-o$@-rdynamic

致:
g++-fPIC-c$^-o$@-rdynamic$(CPPFLAGS)

cppfagas
使用
pkg config
为正在编译的文件生成依赖项。如果需要,我可以在这里提供更多细节。我跟着它走,这导致我将
CPPFLAGS
移到行的末尾,因为我遇到了这个错误:
ImportError:/path/to/file.so:未定义的符号:ZNK4Glib5Error4whatEv

我还添加了
-fPIC
,我认为这是在收到一个共享库错误后添加的

为了设置共享库,我创建了一个
.I
文件,正如上面链接的教程中所建议的那样。然后我运行了
swig-python file.I
,然后是
gcc-shared*object files*-o outfile.so
。最后,我在服务器文件中添加了一个import语句,并从导入的模块中添加了对相应函数的调用。当我试图运行服务器时,出现了上面提到的错误。

问题:

    <> LI>有没有其他方法将我的Python服务器链接到我的C++后端?
  • 我的程序中有没有遗漏一步
  • 当我的程序使用原始前端成功编译和运行时,为什么使用此方法会出现
    引用未定义
    错误

其他资源:
我发了一篇类似的帖子。
发布关于这个问题的帖子

提前谢谢