TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: migsantiago en 02 de Marzo de 2008, 22:47:35

Título: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 02 de Marzo de 2008, 22:47:35
Hola

Estoy escribiendo en lenguaje C usando Ubuntu. Cuando quiero compilar mi código escribo lo siguiente.

Código: [Seleccionar]
link@Sempron:~/Desktop$ cc lee_wav_header.c -o lee_wav_header.exe
lee_wav_header.c:5:19: error: stdio.h: No such file or directory
lee_wav_header.c:6:48: error: fcntl.h: No such file or directory
lee_wav_header.c:7:52: error: stdlib.h: No such file or directory
lee_wav_header.c: In function ‘main’:
lee_wav_header.c:26: warning: incompatible implicit declaration of built-in function ‘printf’
lee_wav_header.c:31: warning: incompatible implicit declaration of built-in function ‘fprintf’
lee_wav_header.c:31: error: ‘stderr’ undeclared (first use in this function)
lee_wav_header.c:31: error: (Each undeclared identifier is reported only once
lee_wav_header.c:31: error: for each function it appears in.)
lee_wav_header.c:32: warning: incompatible implicit declaration of built-in function ‘exit’
lee_wav_header.c:36: error: ‘O_RDONLY’ undeclared (first use in this function)
lee_wav_header.c:42: warning: incompatible implicit declaration of built-in function ‘exit’
lee_wav_header.c:46: error: ‘SEEK_SET’ undeclared (first use in this function)
link@Sempron:~/Desktop$


Y pues esos son los errores que me salen. Normalmente cuando ejecuto el comando cc en el servidor de mi escuela se compila todo correctamente, pero aquí me da error de ubicación de los archivos .h.

¿Qué debo hacer para que cc compile bien?

El programa que estoy probando es el siguiente.

Código: [Seleccionar]
#include <stdio.h>
#include <fcntl.h>      /* Modos de apertura */
#include <stdlib.h>     /* Funciones de archivos */

/*
tambytes contiene el tamaño del archivo
canales contiene el número de canales del archivo
fmuestreo da la frecuencia de muestreo
baudios da los bits por segundo
bloque da la alineación de bloque
bitsmuestra da la resolución de cada muestra
*/

int tambytes, canales, fmuestreo, baudios, bloque, bitsmuestra;
char acumulador[4]; //recibe datos de la cabecera temporalmente
char headerwav[25]; //recibe la cabecera completa + EOF
int archivo; //recibe el descriptor de archivo a analizar

main(int argc, char * argv[])
{
//Imprime saludo
printf("\nPrograma que lee la cabecera de un archivo WAV.\n");

//Verifica que se hayan dado bien los parámetros
if(argc!=2) //ejecutable y archivowav
{
fprintf(stderr,"\nUso del programa: \"%s\" archivo.wav\n", argv[0]); //uso del lector de header
exit(-1); //termina programa indicando que -1 es error (return -1)
}

//Abre el archivo que indicó el usuario, solo lectura
archivo = open (argv[1], O_RDONLY);

//Comprueba que existe el archivo
if(archivo==-1)
{
perror("\nNo se puede abrir el archivo: ");
exit(-1); //termina el programa
}

// Coloca el puntero en la posición 0 para copiar toda la cabecera
lseek(archivo,0,SEEK_SET);
read(archivo, headerwav, 24); //lee 24 bytes y los deposita en headerwav
headerwav[24]=0; //deposita el EOF al final de la cadena

//imprime en pantalla el contenido del header wav
printf("\nEl header de su archivo wav contiene lo siguiente: \n %s",headerwav);
printf("\n");

close(archivo); //cierra el archivo wav que se leyó
}

Gracias.
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: jfh900 en 02 de Marzo de 2008, 23:15:36
Tiene toda la pinta de no estar bien definido el entorno de compilación. Ejecuta en una ventana del sistema la orden "path" y haber si están definidos los caminos "path" de las librerías.

Un saludo
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 04 de Marzo de 2008, 03:55:04
Hola JFH

Lo que me da es que ni reconoce el comando path  :D

link@Sempron:/$ path
bash: path: command not found
link@Sempron:/$

¡Auxilio!  :mrgreen:
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: ma4826 en 04 de Marzo de 2008, 11:17:13
A mi me compila sin problemas.

Comprueba que tengas instalado el paquete libc6-dev (Si tu sistema es de 64 bits creo que sería el paquete libc6-dev-amd64)

Si quieres ver la variable PATH, puedes poner echo $PATH

Saludos,

Miguel Angel.
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 04 de Marzo de 2008, 19:55:31
Hola

Soy nuevo en linux, ¿cómo compruebo si está instalado?
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: ma4826 en 04 de Marzo de 2008, 20:47:18
Con synaptic (Sistema -> Administracion -> Gestor de paquetes de paquetes synaptic) puedes ver paquetes disponibles para instalar y los que tienes instalados.

De todas formas este caso lo más rápido es ejecutar en un terminal

sudo apt-get install libc6-dev

Si lo tienes instalado te lo dirá y sino procederá ha instalarlo.

Saludos,

Miguel Angel.
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: navaismo en 04 de Marzo de 2008, 20:55:50
y en lugar de path usa:

# updatedb

cuando termine haces

#locate -el nobre de tu archivo o coincidencias-

Y encontrara todas las rutas posibles o existentes que tiene el nombre que has buscado.
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 14 de Marzo de 2008, 13:45:59
Hola

Hice lo siguiente:

Código: [Seleccionar]
link@Sempron:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
link@Sempron:~$

No sé si esté bien.

Y verifiqué con la terminal si tengo instalado el paquete libc, se puso a bajar e instalar unos archivos. Luego compilé un hola mundo muy simple y lo logró hacer  :mrgreen:

Gracias ma4826, funcionaron tus instrucciones.

Gracias navaismo.

Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: Geo en 18 de Marzo de 2008, 04:09:24
Yo prefiero instalar completo el paquete build-essential:

$ sudo aptitude install build-essential
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 18 de Marzo de 2008, 11:50:28
Geo, ¿qué ventajas tiene instalar ese paquete?
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: Geo en 21 de Marzo de 2008, 22:01:10
En realidad, se supone que contiene lo necesario para crear paquetes Debian, pero los paquetes que a su vez instala son los necesarios para compilar casi cualquier programa :).
http://packages.ubuntu.com/gutsy/build-essential
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: microlost en 01 de Junio de 2008, 00:21:51
En realidad, se supone que contiene lo necesario para crear paquetes Debian, pero los paquetes que a su vez instala son los necesarios para compilar casi cualquier programa :).
http://packages.ubuntu.com/gutsy/build-essential

Hola,

Contiene los enlaces simbólicos,
 cabeceras, y el objeto archivos necesarios para compilar y vincular los programas que utilizan la biblioteca C estándar.

S2;
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: gera en 04 de Agosto de 2008, 14:07:20
probaste con
Código: [Seleccionar]
#aptitude install build-essential ?
eso te baja todo lo necesario para programar en linux
Título: Re: Compilar en C - Ubuntu 7.10
Publicado por: migsantiago en 04 de Agosto de 2008, 21:38:47
Hola

Solo utilicé el método de Miguel...

sudo apt-get install libc6-dev

Y el compilador compiló bien, no sabría decirte si bajó todo porque soy noob en linux.