http://bugs.winehq.org/show_bug.cgi?id=15883
--- Comment #3 from Jeff Zaroyko jeffz@jeffz.name 2008-11-02 02:09:34 --- Qb64 bundles gnu ld.exe which is where the bug is occuring.
The problem occurs when ld.exe searches its library search path for any of SDL_mixer, SDL_ttf, SDL_image and so on, it tries "/usr/lib/libSDL_ttf.a", wine seems to guess that this is a unix path and shouldn't bother trying "C:\usr\lib\libSDL_ttf.a"
This snippet of a trace when compiling samples/audio.bas shows that Wine finds that /usr/lib/libSDL_ttf.a is on Z: and CreateFileW succeeds.
trace:file:CreateFileW L"/usr/lib/libSDL_ttf.a" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"/usr/lib/libSDL_ttf.a",0x6afb10,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"/usr/lib/libSDL_ttf.a" 520 0x6af854 (nil)) trace:file:find_drive_rootW L"/usr/lib/libSDL_ttf.a" -> drive Z:, root="/", name=L"/usr/lib/libSDL_ttf.a" trace:file:wine_nt_to_unix_file_name L"\??\Z:\usr\lib\libSDL_ttf.a" -> "/home/jeffz/.wine/dosdevices/z:/usr/lib/libSDL_ttf.a"
commenting out the "if (name[0] == '/') /* may be a Unix path */" block in ntdll/path.c makes ld.exe work and so Qb64 then works, but breaks handling unix paths.