Software-Build - WOW64 und collect2.exe error im Compiler

Schnelle objektorientierte, kompilierende Programmiersprache.
schnettchen
Beiträge: 5
Registriert: Do Nov 28, 2013 4:00 pm

Software-Build - WOW64 und collect2.exe error im Compiler

Beitrag von schnettchen » Do Nov 28, 2013 4:04 pm

Hallo zusammen,

Ich versuche im moment Blender (3D-Modellierungssoftware) mit CMake und MinGW zu builden.
Das brauch ich damit ich im PythonShell Blender als Modul importieren kann. Ich bin an sich auch soweit das alles gut funktioniert allerdings hängts am letzten Schritt der mir auch mein Modul 'bpy.pyd' erstellt. Ich denke an sich ist das kein Softwarefehler sondern eher ein Systemfehler:

Bild

Irgendwas läuft beim verlinken schief weil er ein Problem mit dem IsWOW64Process bzw wurde die Library nicht verlinkt. Ich hab schon viel gegooglet, bin aber bis jetzt nicht zu einem Lösungsweg gekommen.
Wie komme ich nun am schnellsten voran?

Viele liebe Grüsse und Danke im Vorraus
Schnettchen

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von Xin » Do Nov 28, 2013 4:31 pm

Der Fehler ist beim Linken, dass er die funktion "IsWow64Process" nicht findet, alles dahinter sind Folgefehler beim Buildprozess und kann quasi ignoriert werden.

Wurde vorher bereits ein Fehler gemeldet?
winstuff.c ruft diese Funktion aus der kernel32.dll. Wird diese vielleicht nicht mitgelinkt?

siehe hier: IsWow64Process

Mit Visual Studio wird die kernel32.lib eigentlich grundsätzlich mitgelinkt. Vielleicht ist das CMake Skript auf Visual Studio ausgelegt und für MinGW nicht sauber getestet?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

schnettchen
Beiträge: 5
Registriert: Do Nov 28, 2013 4:00 pm

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von schnettchen » Do Nov 28, 2013 4:46 pm

Eigentlich müsste die kernel32.lib mitgelinkt werden, da CMake direkt MinGW-Makefiles erstellt, und bisher habe ich auch noch nicht gelesen das MinGW-Makefiles beim compilen dahingehend instabil sind.

Vorher gibt es leider keine Fehler ... ich hatte vorher schon einige andere Fehler mit eliminiert durch Modifikation, aber ich meine mich zu erinnern, dass da auch mal was vom kernel32.dll vorkam.

Ich habe die Microsoft-Seite auch schon mir durchgelesen aber leider kann ich damit nichts anfangen weil ich auch nicht weiss wo ich mit dem Code hinsoll - wo kann ich den eingeben damit ich was sinnvolles herausbekomme und die Fehler suchen kann?

DANKE

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von Xin » Do Nov 28, 2013 5:10 pm

schnettchen hat geschrieben:Eigentlich müsste die kernel32.lib mitgelinkt werden, da CMake direkt MinGW-Makefiles erstellt, und bisher habe ich auch noch nicht gelesen das MinGW-Makefiles beim compilen dahingehend instabil sind.
Naja, er findet die Funktion nicht... was für mich erstmal heißt, dass die kernel32.lib nicht mitgelinkt wird. Finde ich auch eher ungewöhnlich, aber ich kann jetzt auch nicht aus Erfahrung sagen, dass ich Blender mal erfolgreich kompiliert hätte. ^^
schnettchen hat geschrieben:Vorher gibt es leider keine Fehler ... ich hatte vorher schon einige andere Fehler mit eliminiert durch Modifikation, aber ich meine mich zu erinnern, dass da auch mal was vom kernel32.dll vorkam.
Gibt es ein ReadMe-File, was Dir die übliche Bauanleitung für Windows erklärt?
schnettchen hat geschrieben:Ich habe die Microsoft-Seite auch schon mir durchgelesen aber leider kann ich damit nichts anfangen weil ich auch nicht weiss wo ich mit dem Code hinsoll - wo kann ich den eingeben damit ich was sinnvolles herausbekomme und die Fehler suchen kann?
Cmake erzeugt Dir doch ein Makefile. Vielleicht findest Du da ja die Info, ob die kernel32.lib auftaucht und kannst das @ vor dem Compileraufruf entfernen, um die Zeile für den Link-Vorgang auf den Bildschirm ausgegeben zu bekommen.
Dann könnte man überlegen, ob die einem sinnvoll erscheint.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

schnettchen
Beiträge: 5
Registriert: Do Nov 28, 2013 4:00 pm

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von schnettchen » Do Nov 28, 2013 6:09 pm

Danke für die Antwort,

also im MinGW-Ordner ist die libkernel32.a was die Library ja quasi verlinkt (?).

Wahrscheinlich fehlt was bei den mingw32 libs? --> ich habe einen Ordner BlenderSVN, da sind die Ordner blender(sourcecode), mingwbuild(build-dateien) und lib(mingw32-libs) drin. und ich denke mal in den libraries fehlt die kerneldatei!?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von Xin » Do Nov 28, 2013 6:46 pm

schnettchen hat geschrieben:Danke für die Antwort,

also im MinGW-Ordner ist die libkernel32.a was die Library ja quasi verlinkt (?).
Tut er das? Laut Fehlermeldung tut er das nicht.
Und die Fehlermeldung sagt nicht aus, dass er eine libkernel32.a nicht finden konnte. Also vermute(!) ich, dass der Compiler auch nicht danach suchen sollte.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

schnettchen
Beiträge: 5
Registriert: Do Nov 28, 2013 4:00 pm

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von schnettchen » Do Nov 28, 2013 7:03 pm

# Preprocessor definitions for this target.
SET(CMAKE_TARGET_DEFINITIONS
"FREE_WINDOWS"
"HAVE_STDBOOL_H"
"NDEBUG"
"OPJ_STATIC"
"Py_ENABLE_SHARED"
"WIN32"
"WITH_BOOL_COMPAT"
"_FILE_OFFSET_BITS=64"
"_LARGEFILE64_SOURCE"
"_LARGEFILE_SOURCE"
"__LITTLE_ENDIAN__"
)

hat das was zu sagen bzw fehlt dort irgendwie was? (Auszug aus der dependinfo.cmake)

DANKE

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von Xin » Do Nov 28, 2013 7:12 pm

Ich verstehe nicht wirklich was von CMake.

Interessanter wäre das Makefile, bzw. der tatsächliche Aufruf des Linkers im Makefile.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

schnettchen
Beiträge: 5
Registriert: Do Nov 28, 2013 4:00 pm

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von schnettchen » Do Nov 28, 2013 7:17 pm

Ok ...
Kann ich das Makefile mal schicken zum Drüberschauen? (würde jetzt das direkt von CMake erstellte Makefile schicken).

Was mich gerade noch etwas stutzig werden lässt ist, das mingw mir alle file in *.obj umwandelt (ist doch eigentlich für MSVC) und nicht in *.o (für Min-GW)....

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Software-Build - WOW64 und collect2.exe error im Compile

Beitrag von Xin » Do Nov 28, 2013 8:13 pm

schnettchen hat geschrieben:Ok ...
Kann ich das Makefile mal schicken zum Drüberschauen? (würde jetzt das direkt von CMake erstellte Makefile schicken).
Pastebin-Service... notiert...

Ich würde an Deiner Stelle einfach mal grep benutzen und nach libkernel32 bzw. kernel32 suchen.
Das Skript kann ich sowieso nicht ausführen, dafür müsstest Du eine exakte Anleitung geben, was Du bisher gemacht hast, damit man das nachvollziehen kann - also jemand Blender ebenfalls mit MinGW versucht zu kompilieren.
schnettchen hat geschrieben:Was mich gerade noch etwas stutzig werden lässt ist, das mingw mir alle file in *.obj umwandelt (ist doch eigentlich für MSVC) und nicht in *.o (für Min-GW)....
.o und .obj ist im Prinzip das gleiche. Object-Files halt, die mit anderen Objektfiles gelinkt werden können.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten