http://bugs.winehq.org/show_bug.cgi?id=58881 --- Comment #5 from Henri Verbeet <hverbeet(a)gmail.com> --- (In reply to Aleksey Komarov from comment #3)
on vkd3d 1.17 (git 06a5039, full hash 06a503975f7808bcefff8bf2ca4e9605926e1ed9). As you can see, I made 2 small changes: 1. Commented out call vkd3d_shader_get_version 2. Swapped link libs: it was: $(LIBVKD3D_UTILS_LIBS) $(LIBVKD3D_SHADER_LIBS) and now: $(LIBVKD3D_SHADER_LIBS) $(LIBVKD3D_UTILS_LIBS)
I'm not sure if it's bug or feature, but now I can just change link order: https://github.com/q4a/vkd3d-test/commit/ 3dcf9f81f29e86d9fe0e7f07e74595a3829668a1 And build+run my test without error:
That's the expected behaviour, I'm afraid. The details of the linking process have been explained by other people much better than I would be able to here, but essentially, when you're statically linking a library "liba" than depends on symbols from a second library "libb", the first library needs to come before the second one in the list of libraries your linking to. I.e., "-la -lb". For vkd3d, that means that if you're statically linking to libvkd3d-utils, the correct order is "-lvkd3d-utils -lvkd3d -lvkd3d-shader". You can get away with dropping "-lvkd3d" if nothing you're using from vkd3d-utils depends on libvkd3d; in practice that means not using any of the D3D12*() functions like D3D12CreateDevice(), nor vkd3d_utils_set_log_callback(). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.