皆さんは私より幸運でしたが、私は立方体の例を構築しようとしていました。再配置の切り詰められた問題が発生し続け、掘り下げた後、それを古いバグレポート/サポートリクエストに接続することができました: https://sourceforge.net/p/mingw-w64/support-requests/19/
私の解決策は、dlltool を使用して vulkan-1.dll からシンボルを抽出することでした (別の古いハウツー - http://www.mingw.org/wiki/createimportlibraries )。シンボルを抽出できなかったため、これは完全には機能しなかったため、手動で入力する必要がありました (幸いなことに、gcc は未定義のシンボルごとに 1 行を出力します)。基本的に、これが私の vulkan-1.def ファイルの始まりです (関数を 1 行に 1 つずつ末尾に追加します)。
LIBRARY vulkan-1.dll
vkAllocateCommandBuffers
vkAllocateDescriptorSets
vkAllocateMemory
; add functions as needed, one per line
このファイルを準備したら、実行します
dlltool -d vulkan-1.def -l libvulkan-1.a
-L を使用できるようになりました。-lvulkan-1 を使用して、再配置の問題を回避します。私の完全なgccコマンドラインは次のとおりです。
gcc -g cube.c -o cube.exe -I /c/VulkanSDK/1.0.8.0/Include/ -D_WIN32 -DVK_USE_PLATFORM_WIN32_KHR -L . -lvulkan-1 -mwindows
そして出来上がり、キューブが機能します。
注: コンパイルするには、wcstombs_s を wcstombs に置き換える必要もありました。結果の行は次のようになります。
numConverted = wcstombs(argv[iii], commandLineArgs[iii], wideCharLen + 1);