我正在制作一个非常简单的平台独立(至少这是计划)控制台应用程序。我从 conio.h 更改为 pdCurses 以实现它。问题在于,在 Windows 中,使用 Codeblocks 和 gcc 我遇到了问题。
当我包括在内时,我会遇到大量错误。它们都涉及 3 个宏,它们都位于内部不同的源文件中:
CodeBlocks\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\
如果我像这样取消定义这 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|
有人知道为什么会这样吗?还有任何不那么丑陋的方法来纠正这个问题吗?提前感谢您的意见。
编辑:每当我调用任何 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 的链接有什么问题?
-左撇子