2014-09-03 3 views
0

내 제목 종류에서 파이썬 용 C 확장을 개발하려고합니다. 나는이 튜토리얼을 여기에 따라 갔고 setup.py 스크립트를 실행했다. 내가 파이썬 인터프리터를 실행하고 새롭게 생성 된 모듈을 임포트하려고 할 때 링커 에러가 정의되지 않은 심볼 인 py_BuildValue를 얻었습니다. 나는 또한 자기 자신을 컴파일하려고 시도했다. 그리고 Py_InitModule3이 정의되지 않았다고 말하는 에러와 같은 에러가 발생했다. 나는 python3.2-dev와 python3-dev를 모두 설치했다.링커 오류 : 파이썬 용 C/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 코드 : 함수가 Py_BuildValue보다는 py_BuildValue

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

답변

2

라고 있기 때문에 여기 내 TEST.C 코드입니다. C는 대소 문자를 구분합니다. 컴파일 메시지에서 더 자세히 확인해 보면 암시 적으로 선언 된 함수에 대한 경고도있을 것입니다.

+0

오 흠. 나는 튜토리얼을 따라 가고 있었다. 사실 코디가 복사되고 붙여 넣어집니다. 그러나 나는 그것이 감사 할 수 있었다고 생각한다. – rady

+0

나는 이것을 계속했다. 나는 그런 바보 같은 일을하는 것으로 알려져 왔지만 그것은 문제가 아닌 것처럼 보일 것입니다. – rady

+0

@rady : 오류가 틀렸습니까? 코드를 컴파일하려고하지만'Py_BuildValue' 대문자를 수정하려 할 때, 에러는'Py_InitModule3'에 대한 빌드로 이동합니다. 파이썬 2 함수이기 때문에 이해할 수 있습니다. 파이썬 3을 컴파일 할 때 나타납니다. – Dolda2000