Buenas, tengo un problemilla ya que he estudiado programacion en Java pero en c lo estoy empezando ahora por vocacion.
El caso es que tengo el programa.c y un dll. Al compilar el archivo con windows, haciendo gcc -o programa.c programa.exe me dice que no encuentra el dll o algo asi. Como puedo asociar ese dll al programa?
Gracias.
Necesitas un enlazador (linker).
No he usado nunca gcc, así que no se como irá ahí, pero tendrá alguno.
En C, cada archivo de código fuente, se compila por separado (de eso se encarga el compilador), y después se "juntan" todos en único ejecutable (de eso se encarga el enlazador).
Normalmente el enlazador se usa poniendo el nombre de todos los archivos compilados, algo así:
linker.exe archivo1.obj , archivo2.obj, archivoN.obj.
El enlazador suele venir junto con el compilador, no he usado nunca gcc, supongo que vendrá con un enlazador, o que si le pones alguna opción (como -l o algo así), el propio gcc hará de enlazador.
Te aconsejo que utilices un entorno de desarollo (ide), en lugar de hacerlo en modo consola, llamando tu a cada utilidad y poniendo a mano todos los parámetros.
Un entorno de desarrollo te ahorra tiempo y complicaciones.
De todas formas, para compilar solo tu archivo (generar el archivo objeto), no te debería dar ningún error, el error solo te debería dar al intentar construirlo todo. Creo que los tiros deben ir más por que no has incluido el archivo de cabecera con las definiciones de la dll que comentas.
Si tienes el DLL a pelo tendras que utilizar LoadLibrary para usar sus funciones. Para poder enlazar correctamente con una DLL necesitas los archivos de cabecera con las definiciones que hay dentro de esta. Asi que ve buscandolos