Python: undefined reference to `_imp __VJ_InitModule4'
Ich versuche zu tun, ein debug-build des Rabbyt Bibliothek mit mingw-gcc zum laufen mit meinem MSVC gebaut python26_d.. ich habe eine Menge Undefinierte Referenzen, die verursacht mich zu erstellen libpython26_d.eine, allerdings eine der Undefinierte Referenzen bleibt. Googeln gibt mir:
http://www.techlists.org/archives/programming/pythonlist/2003-03/msg01035.shtml
Aber -rdynamic nicht helfen.
e:\MinGW/bin\gcc.exe -mno-cygwin -mdll -O -Wall-g -IE:\code\python\python\py26\ include-IE:\code\python\python\py26\PC -c rabbyt/rabbyt._rabbyt.c -o build\temp .win32-2.6-pydebug\Debug\rabbyt\rabbyt._rabbyt.o -O3 -fno-strict-aliasing rabbyt/rabbyt._rabbyt.c:1351: Warnung: '__Pyx_SetItemInt' definiert, aber nicht verwendet schreiben von build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.def e:\MinGW/bin\gcc.exe -mno-cygwin -shared-g bauen\temp.win32-2.6-pydebug\Debug\r abbyt\rabbyt._rabbyt.o build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.def - LE:\code\python\python\py26\libs -LE:\code\python\python\py26\PCbuild -lopengl32 -lglu32 -lpython26_d -lmsvcr90 -o build\lib.win32-2.6-pydebug\rabbyt\_rabbyt_d. pyd build\temp.win32-2.6-pydebug\Debug\rabbyt\rabbyt._rabbyt.o: In Funktion `init_ra bbyt': E:/code/python/rabbyt/rabbyt/rabbyt._rabbyt.c:1121: undefined reference to `_imp __PJ_InitModule4'
python_d setup.py build --debug -mingw32 c ist der Befehl-Linie
Es ist nicht empfohlen, die Verwendung von MinGW (oder einer der Gabeln) mit der offiziellen WIndows-Python-builds (oder jede andere MSVC build), für die Gründe erklärt in bugs.python.org/issue4709#msg243605.
Es ist nicht empfohlen, die Verwendung von MinGW (oder einer der Gabeln) mit der offiziellen WIndows-Python-builds (oder jede andere MSVC build), für die Gründe erklärt in bugs.python.org/issue4709#msg243605.
InformationsquelleAutor | 2010-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn jemand kommt über die gleiche Fehler Meldung, aber in einer anderen situation: versuchen Sie, fügen Sie
-D MS_WIN64
zu Ihrer Befehl Linie, es funktionierte für mich!Hallo, ich habe ein ähnliches problem, bei stackoverflow.com/questions/18956136/... Können Sie mir helfen mit diesem? In meinem Fall bin ich nicht mit Boost zu bauen der binaries mit dem Befehl-Linie. Ich versuche einfach nur zu bauen "Hello World" Beispiel. Es sollte sehr einfach sein, aber jetzt ist es getrieben mich verrückt... Danke.
InformationsquelleAutor tiho
In der Datei
C:\Python27\Lib\distutils\cygwinccompiler.py
enthält die MinGW-compiler-Einstellungen, finden Sie dieMingw32CCompiler
Klasse:und fügen Sie
-D MS_WIN64
zu dencompiler_so
argument:Keine Notwendigkeit zu Chaos mit Ihrer installierten distutils-Modul. Fügen Sie einfach
define_macros=[('MS_WIN64',None)]
als argument der setup-Aufruf in setup.py.InformationsquelleAutor David
Habe ich gesehen, wenn Sie versuchen zu mischen, kompilierten Objektcode für das Debuggen (
_DEBUG
makro definiert ist) mit nicht-debug-Objekte (_DEBUG
ist nicht definiert).Gibt es eine Zeile in der python-core-code, der
#defines Py_InitModule4
auf einen anderen Namen (Py_InitModule4TraceRefs
) zum auslösen eines "link-time-Fehler" (!sic), wenn Sie die mix-Objekte.Stellen Sie sicher, link gegen ein python-debug-Bibliothek beim kompilieren für die Fehlersuche und Umgekehrt.
InformationsquelleAutor Martin
Ich nur dieses problem gelöst, indem die compiler-flag
-DPy_TRACE_DEFS
. In meinem Fall war ich versucht zu bauen debug-Versionen von SIP/PyQt.Den Fehler kann auftreten, wenn die debug-version von Python kompiliert ist, mit der
Py_TRACE_DEFS
option eingeschaltet. Dies bewirkt, dass die resultierende python2x_d Bibliothek enthält die FunktionPy_InitModule4TraceRefs
stattPy_InitModule4
dass der compiler sucht (neben weiteren änderungen). Schalten Sie die option für das Projekt, das Sie bauen, sorgt der erzeugte code ist kompatibel, und dass Sie die richtige version vonPy_InitModule4
gefunden wird.Mehr Informationen auf
Py_TRACE_DEFS
finden Sie inMisc/SpecialBuilds.txt
in der Python-source-Ordner oder hier.InformationsquelleAutor user3419537
Mein Cygwin und MinGW gcc installiert wurden miteinander in Konflikt. Ich löschte Sie beide und die installierten MinGW und cygwin ohne gcc und das problem gelöst.
InformationsquelleAutor
Für diejenigen von Euch, die nicht über Visual Studio, möchte aber OpenCV kompilieren von Quellcode mit MinGW unter Windows, und führen Sie in dieses problem, hier ist mein cmake-Befehl:
(Für diejenigen, die nicht: In "cmd.exe" erstellen Sie einen Ordner namens
build
imopencv-3.1.0
Ordner enthält eine Datei namensCMakeLists.txt
,cd
inbuild
, und geben Sie den oben genannten Befehl gibt. Sie Bearbeiten können die meisten der Parameter, auf Ihren Wunsch, ich verwendete virtuelle Umgebung für Python hier, aber Sie müssen nicht.)Es gibt eine weitere Sache, die Sie würden tun müssen, ist hinzuzufügen
bevor
#include <Python.h>
imopencv-3.1.0\modules\python\src2\cv2.cpp
, die sich auflöst "undefined " hypot" problem, das Sie stoßen könnten, wie vorgeschlagen, durch entsprechende, ALSO Beiträge.Sie würden wahrscheinlich kompilieren, ohne Schmerzen mit z.B.
make -j4
nach diesen beiden tweaks.InformationsquelleAutor Fan Zeng