[PD] compiling hidio for Windows

ffdd cchh camarafede at gmail.com
Sun Feb 2 19:44:05 CET 2020


Ok, I did Christof's step c) and copied those dummy functions (and
basically commented out anything but a debug_post() inside
"hidio_devices()" and "hidio_elements()", and indeed got a binary. But,
it's no use.

I try to get some data on why it crashes but it just says 'segmentation
fault':

```
camarahalac.1 at ACD-NC054624 MINGW64 ~/Desktop
$ /c/Users/camarahalac.1/Downloads/pd-0.50-2/bin/pd.exe -d 4 -stderr -open
/c/Users/camarahalac.1/Downloads/pd-0.50-2/extra/hidio/hidio-help.pd
Segmentation fault
```





On Sun, Feb 2, 2020 at 12:38 PM ffdd cchh <camarafede at gmail.com> wrote:

> You are right! I now have undefined references only on hidio.o:
>
> hidio.o: In function `hidio_write_event':
> Z:\Desktop\hidio/hidio.c:357: undefined reference to
> `hidio_write_event_symbols'
> Z:\Desktop\hidio/hidio.c:336: undefined reference to
> `hidio_write_event_ints'
> Z:\Desktop\hidio/hidio.c:347: undefined reference to
> `hidio_write_event_symbol_int'
> hidio.o: In function `hidio_setup':
> Z:\Desktop\hidio/hidio.c:643: undefined reference to `hidio_devices'
> Z:\Desktop\hidio/hidio.c:644: undefined reference to `hidio_elements'
>
> hidio.o:hidio.c:(.rdata$.refptr.hidio_elements[.refptr.hidio_elements]+0x0):
> undefined reference to `hidio_elements'
> hidio.o:hidio.c:(.rdata$.refptr.hidio_devices[.refptr.hidio_devices]+0x0):
> undefined reference to `hidio_devices'
> collect2.exe: error: ld returned 1 exit status
> make[1]: *** [Makefile:267: hidio.dll] Error 1
> make[1]: Leaving directory '/z/Desktop/hidio'
> make: *** [Makefile:303: all-recursive] Error 1
>
>
>
>
> On Sun, Feb 2, 2020 at 12:17 PM Martin Peach <chakekatzil at gmail.com>
> wrote:
> >
> > I'm not sure but I think -lhdi should be -lhid, since it's a human
> interface device library.
> > See
> https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/introduction-to-hid-concepts
> >
> > Martin
> >
> > On Sun, Feb 2, 2020 at 12:04 PM ffdd cchh <camarafede at gmail.com> wrote:
> >>
> >> Hi Martin, Christof,
> >>
> >> thanks both. Still no luck.
> >>
> >> I managed through steps a) b) and d), with the exception that I could
> not add "-lhdi", as it appears to not be installed here. Is that pointing
> to this: https://cran.r-project.org/web/packages/hdi/index.html ?
> >>
> >> The log now points to *many* undefined references on mostly
> hidio_windows.c and on hidio.c (which I suspect is my missing step c), for
> which I did not have time)
> >>
> >> I attach the log here again.
> >>
> >> I have hit a brick wall here so I will not pursue this further unless
> there are other instructions I can follow.
> >>
> >> Thanks for you help,
> >>
> >> Best,
> >>
> >> fd
> >>
> >> On Fri, Jan 31, 2020 at 10:52 PM Christof Ressi <info at christofressi.com>
> wrote:
> >>>
> >>> 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>
> 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> 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 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
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> fdch.github.io
> >>>> _______________________________________________
> >>>> 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
> >>>
> >>> _______________________________________________
> >>> Pd-list at lists.iem.at mailing list
> >>> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
> >>
> >>
> >>
> >> --
> >> fdch.github.io
> >> _______________________________________________
> >> Pd-list at lists.iem.at mailing list
> >> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>
>
>
> --
> fdch.github.io
>


-- 
fdch.github.io
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20200202/a22c6f08/attachment-0001.html>


More information about the Pd-list mailing list