Erstelltes C Modul funktioniert nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Martin89
User
Beiträge: 22
Registriert: Freitag 12. Mai 2006, 21:03
Wohnort: /home/

Ok ich glaube ich habe es jetzt soweit
Das setup skript:

Code: Alles auswählen

from distutils.core import setup, Extension
import os

# Create the _embeded C file
os.system("python pyrexembed ServerHandle.pyxe")

# Create the C file
os.system("python pyrexc ServerHandle.pyx")

# Make the extension module
Extn = Extension("ServerHandle", [
	"ServerHandle.c", 
	"ServerHandle_embed.cpp",
	"../MD5.cpp",
	"ServerHandle.cpp"
	]#, libraries= ['ServerHandle.lib'], library_dirs= ['.'] 
)

# Compile the extension module
setup(name="ServerHandle", ext_modules=[Extn])
Die abhaengigkeiten: ServerHandle.cpp braucht MD5.cpp die anderen Dateien werden von PyRex erstellt.
Es gibt wieder fehler beim erstellen:

Code: Alles auswählen

c++ -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.5.18-i686-2.4/Serve
rHandle.o build/temp.cygwin-1.5.18-i686-2.4/ServerHandle_embed.o build/temp.cygw
in-1.5.18-i686-2.4/../MD5.o build/temp.cygwin-1.5.18-i686-2.4/ServerHandle.o -L/
usr/lib/python2.4/config -lpython2.4 -o build/lib.cygwin-1.5.18-i686-2.4/ServerH
andle.dll
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle.o: In function `initServerHandle'
:
/cygdrive/e/Programmieren/Spiele/VirtualWorld/ServerHandle/pyrex/ServerHandle.c:
272: multiple definition of `_initServerHandle'
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle.o:/cygdrive/e/Programmieren/Spiel
e/VirtualWorld/ServerHandle/pyrex/ServerHandle.c:272: first defined here
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle.o: In function `__pyx_tp_new_12Se
rverHandle_ServerHandle':
/cygdrive/e/Programmieren/Spiele/VirtualWorld/ServerHandle/pyrex/ServerHandle.c:
122: multiple definition of `___pyx_type_12ServerHandle_ServerHandle'
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle.o:/cygdrive/e/Programmieren/Spiel
e/VirtualWorld/ServerHandle/pyrex/ServerHandle.c:122: first defined here
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle_embed.o: In function `ServerHandl
e_init':
/cygdrive/e/Programmieren/Spiele/VirtualWorld/ServerHandle/pyrex/ServerHandle_em
bed.cpp:12: undefined reference to `ServerHandle::ServerHandle()'
build/temp.cygwin-1.5.18-i686-2.4/ServerHandle_embed.o: In function `ServerHandl
e_connect':
/cygdrive/e/Programmieren/Spiele/VirtualWorld/ServerHandle/pyrex/ServerHandle_em
bed.cpp:17: undefined reference to `ServerHandle::connect(char const*, int)'
collect2: ld returned 1 exit status
error: command 'c++' failed with exit status 1
Antworten