簡體   English   中英

鏈接器錯誤:python的C / C ++擴展

[英]Linker error: C/C++ Extensions for python

就像我的標題所說的那樣,我正在嘗試為Python開發C擴展。 我在這里遵循了本教程,並運行了setup.py腳本。 但是,當我運行python解釋器並嘗試導入新創建的模塊時,卻得到了鏈接器錯誤未定義符號:py_BuildValue。 我也嘗試自己編譯它,我得到了相同的錯誤以及一個錯誤消息,指出Py_InitModule3未定義。 我已經安裝了python3.2-dev和python3-dev。 這是我的test.c代碼:

#include <python3.2/Python.h>
static PyObject* Test(PyObject* self){
    return py_BuildValue("s","This is a test and my first trip into the world of python bindings!!");
}

static PyMethodDef test_funcs[] ={{"testExtensions",(PyCFunction)Test, METH_NOARGS,"This is my First Extension!!"},{NULL}};

 void initTest(void){
    Py_InitModule3("Test", test_funcs, "Extension module example!");
}

還有我的setup.py代碼:

from distutils.core import setup, Extension
setup(name='Test', version='1.0',  \
    ext_modules=[Extension('Test', ['test.c'])])

這是因為該函數稱為Py_BuildValue而不是py_BuildValue C區分大小寫。 如果您進一步檢查編譯消息,則可能還會有一條警告,提示您隱式聲明了該函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM