Win32 link flags lack -luuid, so executables that run StartSync do not link #184

Closed
opened 2026-10-31 17:22:46 +00:00 by jorijnvdgraaf · 0 comments

Summary

implementations/Crafter.Graphics-GamepadWin32.c:49 compares interface IDs against IID_IUnknown and IID_IAgileObject, which MinGW defines in libuuid, and project.cpp's Win32 link flags (:73-81 at 852ae8a) don't include -luuid. Window::StartSync calls Gamepad::Tick, which pulls the gamepad code in, so a Win32 executable that runs the event loop does not link:

ld.lld: error: undefined symbol: IID_IUnknown
ld.lld: error: undefined symbol: IID_IAgileObject

Seen linking TextWin32 for x86_64-w64-mingw32. PointerWin32, and any example or application built for that target, needs it as well.

Suggested fix

cfg.linkFlags.push_back("-luuid"); beside -lruntimeobject. The two other things the Wine runs of those tests needed come from outside this project: an import library for vulkan-1, which the toolchain does not ship, and a definition of __libc_single_threaded, which the MinGW build of Crafter.Asset references (AGENTS.md, "Cross targets").

## Summary `implementations/Crafter.Graphics-GamepadWin32.c:49` compares interface IDs against `IID_IUnknown` and `IID_IAgileObject`, which MinGW defines in `libuuid`, and `project.cpp`'s Win32 link flags (`:73-81` at `852ae8a`) don't include `-luuid`. `Window::StartSync` calls `Gamepad::Tick`, which pulls the gamepad code in, so a Win32 executable that runs the event loop does not link: ``` ld.lld: error: undefined symbol: IID_IUnknown ld.lld: error: undefined symbol: IID_IAgileObject ``` Seen linking `TextWin32` for `x86_64-w64-mingw32`. `PointerWin32`, and any example or application built for that target, needs it as well. ## Suggested fix `cfg.linkFlags.push_back("-luuid");` beside `-lruntimeobject`. The two other things the Wine runs of those tests needed come from outside this project: an import library for `vulkan-1`, which the toolchain does not ship, and a definition of `__libc_single_threaded`, which the MinGW build of Crafter.Asset references (AGENTS.md, "Cross targets").
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Catcrafts/Crafter.Graphics#184
No description provided.