sylpheedを手元のMinGW環境でビルドしてみようとしてエラーになった。
gcc -Eで試してみたらソースの変数名interfaceがなぜかstructに変更されていた。
static struct Interface { GtkWidget *checkbtn_always_show_msg; GtkWidget *checkbtn_always_mark_read; GtkWidget *checkbtn_openunread; GtkWidget *checkbtn_remember_lastsel; GtkWidget *checkbtn_openinbox; GtkWidget *checkbtn_openinbox_startup; GtkWidget *checkbtn_change_account_on_folder_sel; GtkWidget *checkbtn_immedexec; GtkWidget *checkbtn_show_trayicon; GtkWidget *checkbtn_minimize_to_tray; GtkWidget *checkbtn_tray_toggle_window; } struct;
なんでこんなことになるんだろうと調べてみたら、
C:\MinGW\include\basetyps.hで#define interface _COM_interfaceと定義されていて、
最終的に_COM_interfaceがstructに再定義されるためのようです。
basetyps.hはMinGWのみなので、Linux環境だと問題にならないようです。
以前ビルドを試してみたときはコレひっかからなかったかは不明。
ただ手元の環境が腐っている可能性がなきにしもあらず。