Problem bei C Fensterprogrammierung

23/12/2013 - 22:50 von Volker Weißmann | Report spam
Hash: SHA1

Hallo,
in der Datei /usr/include/X11/Xlib.h befindet sich:
extern Display *XOpenDisplay(
_Xconst char* /* display_name */
);
Wieso kann dann folgendes Programm nicht kompiliert werden?
#include <X11/Xlib.h>
int main(void)
{
XOpenDisplay(NULL);
return 0;
}
Laut eclipse ist in der Zeile
XOpenDisplay(NULL);
"undefined Reference to 'XOpenDisplay'".
Was ist da das Problem?
Auch
#include <X11/Xlib.h>
int main(void)
{
const char c = 'a';
XOpenDisplay(&c);
return 0;
}
führt zu dem selben Fehler.
Bei
#include "usr/include/X11/Xlib.h"
heißt es dass es die Datei/Verzeichnis nicht gibt, obwohl es sie gibt.
Auf Antwort hoffend
Volker Weißmann
volker.weissmann@gmx.de


Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
Archive: http://lists.debian.org/52B8AE32.5080401@gmx.de
 

Lesen sie die antworten

#1 Volker Weißmann
24/12/2013 - 15:10 | Warnen spam
Hash: SHA1

Am 23.12.2013 22:47, schrieb Heiko Schlittermann:
Hallo Volker,

Volker Weißmann (Mo 23 Dez 2013 22:42:10
CET):

Hallo, in der Datei /usr/include/X11/Xlib.h befindet sich: extern
Display *XOpenDisplay( _Xconst char* /* display_name */ );
Wieso kann dann folgendes Programm nicht kompiliert werden?


Vermutlich kann es compiliert(!) werden, aber nicht gelinkt.

#include <X11/Xlib.h> int main(void) { XOpenDisplay(NULL); return
0; } Laut eclipse ist in der Zeile XOpenDisplay(NULL); "undefined
Reference to 'XOpenDisplay'".



Dieser Fehler ist ein Linker-Problem, kein Compiler-Problem.
Leider (vermute ich), geht bei der Verwendung allzu integrierter
IDEs dieses Wissen um Pràprozessor/Linker/Compiler etwas verloren.


Was ist da das Problem? Auch #include <X11/Xlib.h> int
main(void) { const char c = 'a'; XOpenDisplay(&c); return 0; }



Vermutlich fehlt dem Linker eine Bibliothek.

führt zu dem selben Fehler. Bei #include
"usr/include/X11/Xlib.h"



heißt es dass es die Datei/Verzeichnis nicht gibt, obwohl es sie
gibt.



Wenn Du es genau so geschrieben hast, dann fehlt der erste Slash
im Pfadnamen. Und das ist ein Problem für den Pràprozessor, nicht
für den Compiler :)

Warum verwndest Du plötzlich "" statt <>? Der Pràprozessor
behandelt beides unterschiedlich.

Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko
Schlittermann



Ok. Und was muss ich machen damit es funktioniert?

Volker Weißmann



Zum AUSTRAGEN schicken Sie eine Mail an
mit dem Subject "unsubscribe". Probleme? Mail an (engl)
Archive: http://lists.debian.org/

Ähnliche fragen