Ich mache eine sehr einfache Plattform unabhängig (zumindest das ist der Plan) Konsole App. Ich wechselte von conio.h zu pdCurses, um es möglich zu machen. Das Problem damit ist, dass in Windows mit Codeblocks und gcc ich ein Problem habe.pdCurses verwenden in Windows, vermasselt mit 3 gcc-Makros
Wenn ich einschließe, bekomme ich Tonnen von Fehlern. Sie alle betreffen 3 Makros, die sich alle in verschiedenen Quelldateien befinden:
CodeBlocks \ MinGW \ bin .. \ lib \ gcc \ mingw32 \ 3.4.5 ........ \ include \ C++ \ 3.4.5 \ Bits \
Wenn ich undef diese 3 Makros wie folgt aus:
#include <curses.h>
#undef move
#undef erase
#undef clear
dann auch alle kompiliert. Wenn ich nicht undef nicht dann bekomme ich Tonnen von Fehlern über diese Makros.
Beispiel Fehler sind:
macro "move" passed 3 arguments, but takes just 2|
\bits\char_traits.h|185|error: invalid function declaration|
\bits\basic_string.h|604|error: expected `)' before '->' token|
\bits\basic_string.h|1039|macro "erase" passed 2 arguments, but takes just 0|
Wer noch keine Ahnung hat, warum dies geschieht? Und jede nicht so verdammt hässliche Art, das Problem zu korrigieren? Vielen Dank im Voraus für Ihre Eingabe.
Edit: Ich bekomme auch undefinierte Verweise auf verschiedene Dinge, wann immer ich pdcurses Funktionen aufrufen. Ich kann nicht verstehen warum. Ich habe die Bibliothek definitiv richtig verlinkt. Zum Beispiel indem man versucht, ein Zeichen auf dem Bildschirm echo ich:
main.cpp|74|undefined reference to `__imp__SP'|
main.cpp|74|undefined reference to `__imp__stdscr'|
main.cpp|74|undefined reference to `__imp__stdscr'|
es alles andere als schlecht Verknüpfung der Bibliothek sein kann? Und wie kann ich sehen, was mit der Verknüpfung von pdcurses von den oben genannten Fehlern falsch ist?
-Lefteris
Danke für A, ich werde versuchen, es so zu machen. Für B, ja sieht es für mich auch wie ein Verknüpfungsfehler aus, aber ich habe die Bibliothek korrekt mit Codeblöcken verknüpft, genau wie mit jeder anderen Bibliothek. Wie für den entsprechenden Code könnte es alles sein. Jede pdcurses-Funktion löst diese oder ähnliche nicht definierte Referenzen aus. – Lefteris