PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Für 64bit kompilieren, außerdem Probleme mit Pfad


mittelding
2010-01-10, 14:30:45
Hallo!

Zuersteinmal muss ich sagen, dass ich noch nie in meinem Leben mit C/C++ in Berührung kam, sondern nur mit Java gearbeitet habe bisher.

Jetzt bräuchte ich eine DLL für das Java Native Interface. Die habe ich aber nur in 32bit vorliegen, brauche aber das ganze in 64bit. Die Quelldateien besitze ich allerdings ebenfalls.

Bestandteile:

-program.cpp
-program.h

Zu den Headerdateien:

In der program.cpp steht:

#include <windows.h>
#include "program.h"
#include <jni.h>

In der program.h steht dann nochmals

#include <jni.h>

Die jni.h habe ich nicht mitgeliefet bekommen, diese ist aber Bestandteil des Java Development Kits. Der Speicherort:

C:\Program Files\Java\jdk1.6.0_17\include\jni.h


Okay, im wesentlichen würde ich gerne die program.dll erstellen.
Da tun sich mir viele Fragen auf. Ich schätze mal, ich brauche extra einen 64bit Compiler. Und wie ich das mit der jni.h machen soll, die ja ganz woanders liegt, weiß ich auch noch nicht.

Ohne jetzt um den heißen Brei herumzuschreiben: Wie bekomme ich das als Anfänger am schnellsten gebacken? Bloodshed Dev++ habe ich auf dem Rechner - komme ich damit weiter, oder wäre ein anderer Weg einfacher?


Danke! :)

Marscel
2010-01-10, 14:41:23
Wenn ich mich an Dev-C++ richtig erinnere, gibt es da ein Projekt-Profil für DLLs. Deine Quelldateien da einbinden. Zudem musst du dann den Pfad für die jni.h in den Projekt-Optionen als zusätzlichen Includepfad angeben.

Wahrscheinlich brauchst du dann noch MinGW64 als Compiler, dazu musst du die Pfadangaben bei den Compileroptionen ebenso ändern, sonst wird der standardmäßig mitgelieferte 32bitter genutzt.

Wenn das Programm nicht noch irgendwelche Libraries benötigt, solltest du dann Kompilieren können.

mittelding
2010-01-10, 15:04:57
Hallo marscel, vielen Dank schonmal.

Also habe mal etwas experimentiert und das war so wie du gesagt hast. In Dev++ gibts ein DLL-Projekt, außerdem habe ich den Pfad der jni.h als Includepfad hinzugefügt. Die findet er beim Kompilieren auch, gibt aber trotzdem ein Problem:

edit: vergiss was hier stand, es geht! Danke

Jetzt gehts nur noch um den 64bit Compiler. Ich habe bei Google schon vor diesem Thread hier nach Möglichkeiten gesucht, und irgendwo gelesen, dass man mit speziellen Parametern auch den in Dev++ enthaltenen Compiler für 64bit fit machen kann. Habe ich da was falsch verstanden oder geht das wirklich? Finde die Seite leider gerade nicht mehr.


Auf der minGW64 Projektseite steht übrigens:

Projects that are currently using MinGW-w64 successfully:

* GCC: The GNU Compiler Collection


edit: Evt. doch ein Problem gefunden: der Projekttyp "DLL" in Dev++ heißt in den Projekteinstellungen mit vollem Namen Win32 DLL. Selbst wenn ich das mit dem Compiler hinbekomme, kann es sein dass es da trotzdem zu Problemen kommt aufgrund des Projekttyps?

Marscel
2010-01-10, 17:38:02
Jetzt gehts nur noch um den 64bit Compiler. Ich habe bei Google schon vor diesem Thread hier nach Möglichkeiten gesucht, und irgendwo gelesen, dass man mit speziellen Parametern auch den in Dev++ enthaltenen Compiler für 64bit fit machen kann. Habe ich da was falsch verstanden oder geht das wirklich? Finde die Seite leider gerade nicht mehr.

Im Prinzip gibts da ja '-m64', der weigert sich bei mir aber, sei "unimplemented". Ich bin mir zudem sicher, dass man die C++-Libs ebenso in einer 64bit-Ausführung braucht und dass diese normal nicht dabei sind. Deswegen guck dir das hier mal an: http://mingw-w64.sourceforge.net/

EDIT: Ausprobieren? Selbst wenn da Fehler auftauchen sollten, gibt nichts, was man notfalls nicht per Hand umschreiben kann.

Coda
2010-01-10, 17:45:08
Ich würde einfach den Microsoft-Compiler verwenden und gut is ;)

mittelding
2010-01-10, 19:17:47
Wenn ich das Visual Studio hier hätte, hätte ich das schon längst getan. Wenn ich mich recht erinnere, wären das gerade mal 2 Mausklicks. Leider bin ich dank UMTS in der Bandbreite höchst beschränkt, weshalb diese Option erst nächste Woche funktioniert.

Das mit MinGw werde ich jetzt versuchen, sieht aber kompliziert aus. Die kleinste downloadbare Version ist zum "selberbacken", die Dateien muss man irgendwie mit dem Original mingw und noch ein paar Sachen "verschmelzen". Die anderen Versionen sind für mein UMTS wohl schon wieder zuviel. Naja, werde das mit dem zusammenkopieren und zusammencompilen von MinGW mal versuchen.

Novox
2010-01-11, 14:37:21
Die Compiler sind, soweit ich weiß, auch im Windows SDK enthalten:

http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en

Das ist ein Web-Installer bei dem Du dann einfach nur die Compiler auswählst. Bin mir nur nicht sicher, ob das jetzt wirklich die x64-Compiler beinhaltet.