私は非常にシンプルなプラットフォームを独立した(少なくともそれが計画です)コンソールアプリにしています。それを実現するために、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のリンクの何が問題になっているのかをどのように確認できますか?
-レフテリス