Python extension using a C library with one 'hello' function

Veek M vek.m1234 at gmail.com
Tue Nov 4 10:52:52 CET 2014


https://github.com/Veek/Python/tree/master/junk/hello
doesn't work.
I have:
hello.c which contains: int hello(void);
hello.h

To wrap that up, i have:
hello.py -> _hello (c extension) -> pyhello.c -> method py_hello()

People using this will do:
python3.2>> import hello
python3.2>> hello.hello()

It doesn't compile/work. 

deathstar> python setup.py build_ext --inplace
running build_ext
building '_hello' extension
creating build
creating build/temp.linux-x86_64-3.2
gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -
D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -
Werror=format-security -fPIC -I/usr/include/python3.2mu -c pyhello.c -o 
build/temp.linux-x86_64-3.2/pyhello.o
pyhello.c:15:6: warning: character constant too long for its type [enabled 
by default]
pyhello.c:15:5: warning: initialization makes pointer from integer without a 
cast [enabled by default]
pyhello.c:15:5: warning: (near initialization for 'hellomethods[0].ml_name') 
[enabled by default]
pyhello.c:15:5: warning: initialization from incompatible pointer type 
[enabled by default]
pyhello.c:15:5: warning: (near initialization for 'hellomethods[0].ml_meth') 
[enabled by default]
pyhello.c:15:5: warning: initialization makes integer from pointer without a 
cast [enabled by default]
pyhello.c:15:5: warning: (near initialization for 
'hellomethods[0].ml_flags') [enabled by default]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro 
build/temp.linux-x86_64-3.2/pyhello.o -o 
/root/github/junk/hello/_hello.cpython-32mu.so


>>> import hello
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "hello.py", line 1, in <module>
    from _hello import *
ImportError: ./_hello.cpython-32mu.so: undefined symbol: hello
>>> 




More information about the Python-list mailing list