使用C扩展Python,错误:未定义引用

时间:2017-08-22 19:31:38

标签: python c gcc

我正在学习如何在C语言中扩展Python。

在开始之前,我下载了所有需要的软件包:

sudo apt-get install python2.7-dev
sudo apt-get install python3.5-dev

我从互联网上找到了一个例子,检查一切是否正常。

这是链接: https://docs.python.org/2/extending/extending.html

创建了setup.py并构建了模块。

python2 setup.py build

它没有给我任何错误 我创建了一个test.py并运行它 它只是说我导入的模块不存在 困惑我gcc'ed C文件,这是结果:

  

致命错误:Python.h:没有这样的文件或目录

我没有放弃,我尝试了这一点:
locate Python.h,结果是:/home/*censored*/python/include/python2.7/
所以我使用了标志-I并再次尝试GCC代码:gcc -I /home/*censored*/python/include/python2.7/ myModule.c
结果是:

/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: in the function "_start":(.text+0x20): reference not defined a "main"


myModule.c:(.text+0x37): reference not defined a "PyArg_ParseTuple"
myModule.c:(.text+0x67): reference not defined a "Py_BuildValue"
collect2: error: ld returned 1 exit status

我还下载了tarball并运行了./configure make and make install,但没有,仍然遇到这个问题。

这是我在StackOverflow上的第一个问题,如果我搞砸了一些关于文本格式的话,请跟我说实话。谢谢你,祝你有个美好的一天。

0 个答案:

没有答案