Я делаю очень простое, независимое от платформы (по крайней мере, в плане) консольное приложение. Я перешел с conio.h на pdCurses, чтобы это произошло. Проблема в том, что в Windows, используя Codeblocks и gcc, у меня есть проблема.
Когда я включаю, я получаю тонны ошибок. Все они относятся к 3 макросам, расположенным в разных исходных файлах внутри:
CodeBlocks \ MinGW \ Bin .. \ Lib \ НКУ \ mingw32 \ 3.4.5 ........ \ включать \ C ++ \ 3.4.5 \ бит \
Если я откажусь от этих 3 макросов, как это:
#include <curses.h>
#undef move
#undef erase
#undef clear
тогда все хорошо компилируется. Если я не откажу, то получаю массу ошибок об этих макросах.
Примеры ошибок:
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|
У кого-нибудь есть идеи, почему это происходит? И какой-нибудь не такой уж чертовски уродливый способ исправить проблему? Заранее спасибо за ваш вклад.
Edit: я также получаю неопределенные ссылки на различные вещи, когда я вызываю любые функции pdcurses. Я не могу понять, почему. Я определенно правильно связал библиотеку. Например, пытаясь отобразить символ на экране, я получаю:
main.cpp|74|undefined reference to `__imp__SP'|
main.cpp|74|undefined reference to `__imp__stdscr'|
main.cpp|74|undefined reference to `__imp__stdscr'|
Может ли это быть чем-то иным, кроме плохого связывания библиотеки? И как я могу увидеть, что не так со связью pdcurses из вышеуказанных ошибок?
-Lefteris