Date: Wed, 20 Feb 2013 18:04:09 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Subject: Re: argyllcms and usb (0.1 and 1.0) Message-ID: <201302201804.09100.hselasky@c2i.net> In-Reply-To: <5124932E.5080205@passap.ru> References: <5124932E.5080205@passap.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 20 February 2013 10:11:10 Boris Samorodov wrote: > Hello, All! > > I try to build argyllcms (http://www.argyllcms.com/) at FreeBSD: > ----- > % uname -a > FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #8 r246714: Tue > Feb 12 22:26:27 SAMT 2013 > bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BB64X amd64 > ----- > > The program uses USB-0.1 and USB-1.0. There is a remark at sources > that since libusb1 does not support FreeBSD, usb-0.1 is used. > > When compiling I get the following error: > ----- > spectro/usbio.c:741:17: error: use of undeclared identifier 'dev'; did > you mean 'div'? > descriptor = dev->descriptor; /* Copy */ > ^~~ > div > /usr/include/stdlib.h:91:8: note: 'div' declared here > div_t div(int, int) __pure2; > ^ > spectro/usbio.c:741:20: error: member reference base type 'div_t (int, > int)' is not a structure or union > descriptor = dev->descriptor; /* Copy */ > ~~~^ ~~~~~~~~~~ > 5 warnings and 2 errors generated. > > cc -c -o spectro/usbio.o -DUNIX -D_THREAD_SAFE -pipe -O2 > -DARGYLLCMS -Ispectro -Ih -Inumlib -Iicc -Icgats -Irspl -Ixicc -Igamut > -Ispectro -Iplot -Ilibusb -Iucmm -I/usr/local/include spectro/usbio.c > ----- > > Relevant (imho) parts from the source file: > ----- > [...] > #ifdef USE_LIBUSB1 > # include "libusb.h" > #else > # include "usb.h" > #endif > [...] > /* Get a copy of the device descriptor so we can > see device params */ > #ifdef USE_LIBUSB1 > if (libusb_get_device_descriptor(p->ppath->dev, > &descriptor) != LIBUSB_SUCCESS) > error("Get device descriptor on USB port > '%s' failed with %d (%s)",p->ppath->path,rv,libusb_strerror(rv)); > #else > descriptor = dev->descriptor; /* Copy */ > #endif > ----- > > GCC version of the error message: > ----- > spectro/usbio.c: In function 'usb_open_port': > spectro/usbio.c:741: error: 'dev' undeclared (first use in this function) > spectro/usbio.c:741: error: (Each undeclared identifier is reported only > once > spectro/usbio.c:741: error: for each function it appears in.) > ----- > > Seems (from my very inexperienced in USB POV) that the program > wants libusb-0.1 but gets libusb-2.0... So I'm stuck here. > > Questons. > 1. Should I use some additional flags to build sources using libusb-0.1? > 2. Is a note about FreeBSD about libusb1 is stale and lubusb1 is > supported? Sould I use some flags to use libusb1? > > Any help is appreciated. Thanks! Hi, USE_LIBUSB1 should be set, and -lusb must be used as linker flag, not - lusb-1.0 like under linux. In FreeBSD -lusb is a multi-API library, including v0.1, v1.0 and v2.0. Header files are in /usr/include -HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302201804.09100.hselasky>