[PD] compiling hidio for Windows

Christof Ressi info at christofressi.com
Sat Feb 1 04:49:29 CET 2020


The order of .o files doesn't matter. It's shared and static libraries 
which sometimes have to be specified in a certain order.

The actual problem was that

a) hidio_windows.c used _WINDOWS instead of _WIN32 as a guard around the 
whole code, so hidio_windows.o was empty.

b) then there was a wrong header (<ddk/hidsdi.h>  instead of <hidsdi.h>)

c) some methods are not implemented, so I copied the dummy 
implementation from hidio_linux.c. It seems like those methods are only 
relevant for OSX.

d) there were missing linker flags "-lhdi -lSetupAPI".

Also, I couldn't get the autotools makefile to work, so I just compiled 
manually on the command line. Finally I got a binary :-)

To be honest, I don't think that anyone ever compiled this code on 
Windows, so it is probably untested. Anyway, when I have time I can 
clean this up and make a PR (or just fork it). Then we probably need 
some testing before we upload it to Deken...

Christof

On 01.02.2020 02:50, Martin Peach wrote:
> Line 76 of the log:
> gcc  -DPD -g -O2 -I/z/Desktop/pure-data/src -mms-bitfields 
>  -L/z/Desktop/pure-data/src -L/z/Desktop/pure-data/bin 
> -L/z/Desktop/pure-data/obj   -s -shared -o hidio.dll hidio.o 
> hidio_types.o   hidio_windows.o  -L/src -L/bin -L/obj -lpd
> hidio.o: In function `hidio_tick':
> Z:\Desktop\hidio/hidio.c:513: undefined reference to `hidio_get_events'
>
> hidio_tick is in hidio.o, which has compiled successfully.
> hidio_get_events is in hidio_windows.o, which also exists; but the 
> linker is linking three .o files, and hidio_windows.o is the last one.
> Perhaps switching hidio.o and hidio_windows.o in that gcc command will 
> let the linker find the symbols before they are needed.
>
> Martin
>
>
>
> On Fri, Jan 31, 2020 at 5:29 PM ffdd cchh <camarafede at gmail.com 
> <mailto:camarafede at gmail.com>> wrote:
>
>     Hi Christof,
>
>     Thanks! Yes, I found these threads on the list:
>
>     https://lists.puredata.info/pipermail/pd-list/2019-11/126348.html
>     https://lists.puredata.info/pipermail/pd-list/2019-10/126096.html
>
>     But, there are still no Windows version of this external...
>
>     Github issue is up: https://github.com/Benitoite/hidio/issues/2
>
>     Hope something comes out of this thread! I am sure there are
>     enough Windows users out there in need of some hid external.
>
>     Best,
>
>     f
>
>
>     On Fri, Jan 31, 2020 at 4:57 PM Christof Ressi
>     <info at christofressi.com <mailto:info at christofressi.com>> wrote:
>
>         I remember a similar thread on the list a few months ago. I
>         tried to compile it and gave up. The build system for Windows
>         seems to be broken and needs to be fixed (and probably
>         switched from automake to pd-lib-builder). Unfortunately, I
>         don't have time right now to work on this, but you could file
>         a bug report on the GitHub repo, so maybe the maintainer will
>         do it.
>
>         Christof
>
>         On 31.01.2020 21:05, ffdd cchh wrote:
>>         Dear list,
>>
>>         I need to use external controllers via USB with vanilla (say,
>>         a PS4 controller), and I have not found a compiled version of
>>         [hidio] for Windows. Please, let me know if there are
>>         ready-made options out there (feel free to change subject
>>         line if that thread goes wild).
>>
>>         In the meantime, I am trying to compile [hidio] for Windows.
>>         I'm on Windows 10.0.18362, x64-based PC. I am using a MSYS
>>         terminal with MINGw64. I took the latest code from
>>         Benitoite's repository (https://github.com/Benitoite/hidio)
>>         and I am stuck with "undefined reference"s all over. I attach
>>         here the console log.
>>
>>         I would very much welcome any idea on how to approach this so
>>         I can use vanilla with my students :)
>>
>>         Best,
>>
>>         f
>>
>>
>>         _______________________________________________
>>         Pd-list at lists.iem.at  <mailto:Pd-list at lists.iem.at>  mailing list
>>         UNSUBSCRIBE and account-management ->https://lists.puredata.info/listinfo/pd-list
>         _______________________________________________
>         Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>         UNSUBSCRIBE and account-management ->
>         https://lists.puredata.info/listinfo/pd-list
>
>
>
>     -- 
>     fdch.github.io <http://fdch.github.io>
>     _______________________________________________
>     Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
>     UNSUBSCRIBE and account-management ->
>     https://lists.puredata.info/listinfo/pd-list
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20200201/b3d998db/attachment-0001.html>


More information about the Pd-list mailing list