MacOS の Eclipse で最初に作成したプロジェクトを Windows 10 の Eclipse CDT 1909 でビルドして実行しようとすると、同様の問題が発生しました。
minGW64 コンパイラを使用すると、次の手順が機能することがわかりました。
RMB プロジェクトをクリックし、プロパティを選択します。[Project Properties] > [C/C++ Build] で、LMB で [Manage Configurations] をクリックし、LMB で [New] をクリックして、新しい C/C++ ビルド構成を作成します。Debug_Windows という名前を付けて、[Copy Setting from] を [Default configuration] に設定し、アクティブにします。LMB をクリックして、[Configuration] を次のように設定します。 Debug_Windows.
[プロジェクト プロパティ] > [C/C++ ビルド] > [ビルダー設定] > [ビルド コマンド] > [現在のビルダー] を CDT 内部ビルダーに設定します。
プロジェクト プロパティ > C/C++ ビルド > ビルダー設定 > ツール チェーン エディター > 現在のツールチェーンを MinGW GCC に設定します。
[プロジェクト プロパティ] > [C/C++ ビルド] > [ビルダー設定] > [ツール チェーン エディター] > [現在のビルダー] を CDT 内部ビルダーに設定します。
次のパスを Project Properties > C/C++ Build > Settings > GCC C++ Compiler > includes "C:\Applications\Library\SDL2-2.0.9\x86_64-w64-mingw32\include\SDL2" に追加します
次のパスを Project Properties > C/C++ Build > Settings > GCC C++ Linker > Libraries "C:\Applications\Library\SDL2-2.0.9\x86_64-w64-mingw32\lib" に追加します
次のライブラリを [Project Properties] > [C/C++ Build] > [Settings] > [GCC C++ Linker] > [Libraries] に SLD2main SDL の順序で追加します。
[プロジェクト プロパティ] > [実行/デバッグ設定] に移動し、左クリックして [新規] をクリックし、[C/C++ アプリケーション] を選択します。左クリックして [OK] をクリックし、[C/C++ アプリケーション] フィールドに「Debug_Windows\project_name.exe」と入力します (project_name を正しい値に置き換えます)。
ビルド構成を Debug_Windows に変更します。
プロジェクトのプロパティを閉じます。
main 関数を含むファイルの先頭に、プリプロセッサ ディレクティブ #define SDL_MAIN_HANDLED を追加します。プリプロセッサ ディレクティブがないと、プログラムは正しくリンクされません。
プログラムを実行するには RMB プロジェクトをクリックし、Run as > Run Configurations を選択して、ビルド用に作成された実行構成を選択します。
SDL2.dll をプロジェクト ディレクトリ構造のトップ レベルにコピーします。これは、Debug または Debug_Windows ディレクトリにコピーされたかのように、プロジェクトがビルドされるたびに削除されます。
私が見つけた重要なポイントは、リンカ ライブラリに mingw32 を含める必要はなく、 #define SDL_MAIN_HANDLED は main を含むファイルの #include の前にある必要があるということです。