Eclipse dlls bauen

Mortal_Shadow

Aktives Mitglied
Hi,

ich bin mir nicht sicher ob das hier richtig ist.
Ein mod kann es im zweifelsfall gerne in ein passenderen Bereich verschieben.

Ich versuche gerade .dll mit java zu nutzen.
Dabei beutze ich dieses Tutorial.
Allerdings scheitere ich gerade dabei mit Eclipse meine .dll zu erzeugen.
Code:
#include <jni.h>
#include "helloworld_HelloWorld.h"
#include <iostream>

using namespace std;

JNIEXPORT void JNICALL Java_helloworld_HelloWorld_callNative (JNIEnv *env, jobject obj) {

   cout << "Mir geht es gut: Hello World!" << endl;

}
ist hierbei meine cpp Datei.
Eclipse liefert mir daraus allerdings eine .so und eine .o - Datei.
Was soll das und was mache ich dagegen?
 
Ja, hat mir google auch gesagt.
Allerdings läuft auf meinem Rechner Windows Vista.
Und ich würde gerne eine .dll erzeugen mit Eclipse...
Aber ich habe es nicht geschafft da irgendwas umzustellen.
 
Zuletzt bearbeitet:
Bin kein G++- und MinGW-Experte, und ich weiß nicht, was da mit der def-Datei und den magischen Funktionen des CDT alles abläuft, aber du kannst mal versuchen,
g++ -o Name.dll Name.o
auszuführen, und schauen, ob da eine verwendbare DLL rauskommt. Falls ja, kann man (d.h. jemand der da Bescheid weiß) vielleicht noch rausfinden, wie man das in die Eclipse Toolchain reinwurstet.
 
MinGW aus cmd heraus kompilieren zu lassen war keine gute Idee.
Zuerst meckerte er, das jni.h nicht gefunden wurde.
Als ich das dann in das MinGW verzeichnis kopiert habe und kompilieren wollte, kamen
hunderte von Errormeldungen, das die jni.h fehlerhaft sei.
 
Eigentlich sollte nur die schon existierende .o zu einer DLL gelinkt werden (bin aber nicht 100% sicher, ob das geht). Ansonsten müßte man natürlich noch die passenden Include-Verzeichnisse angeben (wo die jni.h drin ist).
 
Nunja, wenn ich mache cd C:\Datei\Pfad\
und dann g++ -o hello.dll hello.o
Kommt als error:
Code:
Ellenlanger\Dateipfad:main.c:(.text+0xd2): undefined reference to 'WinMain@16'
collect2: Id returned 1 exit status
 
Ich kenn' es nur so, dass man (entweder einfach auf "Compile" klickt oder) einfach den gcc mit den sourcen (und allen includes und libs) startet und fertig :bahnhof: Vielleicht kennt sich ja jemand mit MinGW und gcc und insbesondere deren Kombination mit CDT besser aus und kann näheres dazu sagen.
 
Hast du folgendes auch wirklich gemacht?
nicht so wichtig. Als Location wird hier also nur noch die “cp” Datei angegeben, die sich im “/MSYS/bin”-Verzeichnis befinden müsste. Als “Working Directory” geben wir an:

${workspace_loc:/HelloWorldDLL/Release}

und als Arguments:

*.dll ${workspace_loc:/HelloWorld/bin}
 
So, der link von dir war nochmal das tutorial das ich schon in meinem ersten Post angegeben habe.
Der zweite, versuchte das selbe, wie das, was Marco13 vorschlug.
Eingetragen hatte ich auch alles, der Fehler lag wo ganz anders.

Und zwar habe ich ebenfalls Borland Delphi installiert.
Dieses ist auch in der Pfad-Variable und besitzt einen maker.exe.
g++ hat nun auf den delphi-maker zugegriffen.
Die Lösung ist, wenn ich mit c++ arbeite, den Pfad nach c++ zu setzen und analog für delphi.
Nuja, trotzdem danke für eure Mühe.
 

Neue Themen


Zurück
Oben