我正在製作一個非常簡單的平臺獨立(至少這是計劃)控制檯應用程序。我從conio.h更改爲pdCurses,使其發生。問題在於,在Windows中,使用Codeblocks和gcc我有一個問題。pdCurses在Windows中使用,使用3 gcc宏混亂
當我包括我得到噸錯誤。它們都涉及位於不同源文件中的3個宏:
CodeBlocks \ MinGW \ bin .. \ lib \ gcc \ mingw32 \ 3.4.5 ........ \ include \ 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|
任何人有任何想法,爲什麼出現這種情況?而任何不那麼可惡的方式來糾正這個問題?預先感謝您的意見。
編輯:當我調用任何pdcurses函數時,我也獲得了對各種東西的未定義引用。我不明白爲什麼。我明確地鏈接了這個庫。例如,通過試圖呼應屏幕,我得到一個char:
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
感謝A,我會盡力這樣做。 對於B,是的,它看起來像是一個鏈接錯誤,但我確實從代碼塊正確鏈接了庫,就像我對任何其他庫做的一樣。 至於相應的代碼,它可能是任何東西。任何pdcurses函數都會拋出這個或者一些類似的未定義的引用。 – Lefteris 2009-07-16 18:06:56