Dev - C++ - Usar libusb.h en mi programa

 
Vista:
Imágen de perfil de Karim

Usar libusb.h en mi programa

Publicado por Karim (4 intervenciones) el 14/04/2017 19:48:18
Me acabo de inscribir aquí básicamente porque necesito ayuda. Deseo hacer un programa que liste los puertos USB o mejor dicho los dispositivos conectados a ellos. También quiero hacer un programa para leer salida de un sensor conectado al USB. Encontré una librería llamada libusb_1.0.21 y estoy usando Dev_C++ como ambiente de desarrollo. Programo poco en C++ la verdad. Pero quiero usar esa librería y no tengo ni idea de cómo hacerle, hay un muchos directorios con archivos de todo tipo (entre ellos libusb.h). Se me ocurrió copiar el libusb.h a el directorio C:\Program Files (x86)\Dev-Cpp\MinGW64\include y trato de ejecutar algun ejemplo de los que vienen en ese mismo paquete, pero me marca errores de "undefined reference to" y una función. ¿Qué debo hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Usar libusb.h en mi programa

Publicado por agustin (522 intervenciones) el 15/04/2017 09:03:59
Pues yo lo dejaría donde estaba y simplemente incluiría esa librería sin modificar el árbol de directorios porque seguramente se referencia entre ellos. Por otro lado seguro que necesitas añadir el .cpp o el .c al proyecto también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Karim

Usar libusb.h en mi programa

Publicado por Karim (4 intervenciones) el 15/04/2017 14:01:17
Ya lo hice... mismo error. En Dev C++ tienes la posibilidad de darle la ruta de cada una de tus librerías; ya lo hice. Abrí el libusb.h y noté que hay muchos CALL's, y supuse que pudiera necesitarse algunos DLL's instalados y bajé un programa llamado Zadig que instala (aparentemente) algunas dynamic libraries o drivers. Las instalé y mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Usar libusb.h en mi programa

Publicado por agustin (522 intervenciones) el 15/04/2017 17:47:10
Comparte el enlace de la librería que dices que quieres usar y a ver si alguien lo puede probar. Ya te digo que si te dice que no hay definida la función es porque no has añadido el archivo correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Karim

Usar libusb.h en mi programa

Publicado por Karim (4 intervenciones) el 15/04/2017 21:28:31
Sí, eso creo yo también, pero ya probé varias formas en las opciones del compilador, pero mi poca experiencia en C (o C++) en Windows crea otro problema adicional para mi. La librería está en la siguiente liga:

https://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.21/

Las opciones de compilador que uso están aquí:
https://www.dropbox.com/s/5ay5spmnp399epg/DevCpp_OpcComp.png?dl=0

Descomprimí el archivo y lo que hice fue copiar el directorio libusb con todos sus archivos al directorio de Dev-Cpp. Quizá no debí haber hecho eso, pero bueno, igual uso el path adecuado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Usar libusb.h en mi programa

Publicado por agustin (522 intervenciones) el 16/04/2017 00:44:54
Tu problema es que incluyes el .h pero no el lugar donde se declaran las funciones. En este caso tienes la librería estática .lib o la dinámica dll. El uso es sencillo, para la estática añades el .lib al proyecto. Para la estática copia la dll junto al binario del proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Karim

Usar libusb.h en mi programa

Publicado por Karim (4 intervenciones) el 16/04/2017 01:25:58
Ok. Encontré un directorio llamada msvc donde hay un par de archivos. Uno de los cuales me dice que debo ejecutarlo en un "WDK environment". Ahora a averiguar qué es eso... y ver qué hago. Gracias por la ayuda, (Esto es un horror, debí haber estudiado para decorador de interiores).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Usar libusb.h en mi programa

Publicado por Thanatos (199 intervenciones) el 16/04/2017 02:44:50
En la imagen que publicaste se ve que estás utilizando el compilador de TDM-GCC de 64 bit, por eso en este ejemplo usaré los archivos binarios de 64 bits de la librería libusb:

Antes de empezar te aconsejo que elimines las configuraciones que hiciste en la ventana Opciones del compilador de Dev-C++, no es ahí donde debes hacer las configuraciones para usar la librería.

1. Usaremos uno de los programas de ejemplo que vienen con la librería, en este caso el programa fxload. Este programa está compuesto de 3 archivos: fxload.c, ezusb.c y ezusb.h. Crea una carpeta con el nombre fxload y copia esos 3 archivos en ella. (Se encuentran en el directorio libusb-1.0.21\examples\source).

2. Crea un nuevo proyecto de Dev-C++, de esta manera:
imagen01

3. Guarda el archivo de proyecto fxload.dev, dentro de la carpeta que creaste en el paso 1:
imagen02

4. Como en el archivo fxload.c ya está definida la función main, no se necesita el archivo main.c que Dev-C++ crea por defecto junto con cada proyecto nuevo. Cierra la pestaña del archivo main.c sin guardar los cambios y también quita ese archivo del árbol del proyecto:
imagen03
imagen04

5. Luego agrega los 3 archivos del proyecto desde el árbol de archivos:
imagen05
imagen06
imagen07

Como estás compilando para 64 bits, usaremos el contenido de la carpeta MinGW64 incluida en la descarga de libusb.

6. Abre la ventana Opciones del Proyecto: Proyecto > Opciones del Proyecto.
Usa el botón marcado con una flecha para buscar la carpeta libusb-1.0.21\MinGW64\static, luego usa el botón Añadir:
imagen08
imagen09
imagen10

7. Sigue el mismo proceso del paso anterior en la pestaña Dir. de Include, para agregar la ruta de la carpeta donde se encuentra el archivo libusb.h:
imagen11

8. Lo siguiente es configurar el nombre de la librería que vamos a utilizar en la sección Linker de la pestaña Parámetros.
Escribe -l:libusb-1.0.a
imagen12

9. Copia el archivo libusb-1.0.dll que se encuentra en libusb-1.0.21\MinGW64\dll, a la carpeta del proyecto. Los archivos que tenemos en la carpeta del proyecto deberían ser los de la siguiente imagen:
imagen13

10. Compila y ejecuta el proyecto:
imagen14
imagen15

Si necesitas crear ejecutables de 32 bits, utiliza los archivos de la carpeta MinGW32 incluida en la descarga de libusb, en lugar de los que utilicé en el ejemplo, además debes seleccionar la opción correspondiente en el combobox de la parte superior derecha de Dev-C++.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Usar libusb.h en mi programa

Publicado por Baldomero (1 intervención) el 28/11/2023 21:30:54
No encuentro la dicha carpeta del paso 6:(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 5 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Usar libusb.h en mi programa

Publicado por Slomer300 (1 intervención) el 14/09/2017 05:26:00
Una disculpa también tengo que hacer un programa que liste los dispositivos usb conectados. en c++ tendra algo que me pueda ayudar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar