Problem mit joyGetNumDevs();
-
Guten Tag
Das ist mein erster Post hier und ich bin totaler Anfänger in Sachen C/C++.
Wollte Joystickinformationen einlesen und möchte dazu joyGetNumDevs() benutzen.
Habe mal ein Miniprogramm geschrieben, das die Funktion einfach nur benutzt (nicht sinnvoll, müsste aber trotzdem gehen, damit ich damit weiter machen kann):
main.c
#include <Windows.h> #include <stdio.h> int main(){ JOYINFO joyinfo; if(joyGetNumDevs() == 0) printf("false\n"); else printf("Hatgeklappt\n"); return 1; }
joyGetNumDevs() ist in Mmsystem.h und diese wiederum in Windows.h deklariert. Beide Header befinden sich in C:\MinGW\include
Mein Komileraufruf lautet wie folgt:
gcc -o main.exe main.cDabei kommt folgender Fehler:
"(Pfad auf Temp):hello.c: undefined reference to 'joyGetNumDevs@0'"Was muss ich in der Konsole eingeben, um die Funktion/die Header-Datei einbinden zu können?
Danke schoneinmal
Gruß Manfred
-
Du musst noch die entsprechende Library mitangeben.
-
Also habe nun in meinem Programm zusätzlich die #include <Mmsystem.h> mit eingebunden.
Mein Aufruf:
gcc -I"C:\MinGW\include" -L"C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\Lib" -o main.exe main.cHabe auch schon die main.h geschrieben:
extern UINT joyGetNumDevs();
und es kommt der selbe Fehler. Was mache ich nur falsch?
liegt es evtl an den Leerzeichen im Pfad?
-
Fährst du MinGW mit VC? Ich glaube nicht, dass die Library-Formate kompatibel sind.
MfG SideWinder
-
Nein, mache ich eigentlich nicht. Da ist nur die einzige Winmm.lib auf meinem System...
Gibt es die auch rein für den GCC?? Wenn ja, wo finde ich dieDie nötige Header Dateien hatter er ja
-
Ich glaube, dass ich etwas gefunden habe. Auf der MinGW-Seite gibt es ein Packet, das win32api-3.9-src.tar.gz und win32api-3.9-tar.gz. In dem Source-Packt sind configure und Makefiles + die gesuchte winmm jedoch nicht als .lib sonder als .def wie auch die dazugehörigen .h Dateien.
In dem anderen Ordner ist diese Datei als libwinmm.a drin. Da MinGW meines Wissens für Windows ist, denke ich, dass ich das alles unter Cygwin evtl übersetzen muss.
Wenn dem so ist, wie stelle ich soetwas an??
-
Hat sich erledigt, war mein Fehler...
Trotzdem vielen Dank, für die Antworten
Gruß Manfred