Autor Tema: Compilar en C - Ubuntu 7.10  (Leído 10495 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Compilar en C - Ubuntu 7.10
« 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.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Compilar en C - Ubuntu 7.10
« Respuesta #1 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
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Compilar en C - Ubuntu 7.10
« Respuesta #2 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:

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Compilar en C - Ubuntu 7.10
« Respuesta #3 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.
万人の友は誰の友でもない。

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Compilar en C - Ubuntu 7.10
« Respuesta #4 en: 04 de Marzo de 2008, 19:55:31 »
Hola

Soy nuevo en linux, ¿cómo compruebo si está instalado?

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Compilar en C - Ubuntu 7.10
« Respuesta #5 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.
万人の友は誰の友でもない。

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Compilar en C - Ubuntu 7.10
« Respuesta #6 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.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Compilar en C - Ubuntu 7.10
« Respuesta #7 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.


Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Compilar en C - Ubuntu 7.10
« Respuesta #8 en: 18 de Marzo de 2008, 04:09:24 »
Yo prefiero instalar completo el paquete build-essential:

$ sudo aptitude install build-essential
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Compilar en C - Ubuntu 7.10
« Respuesta #9 en: 18 de Marzo de 2008, 11:50:28 »
Geo, ¿qué ventajas tiene instalar ese paquete?

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Compilar en C - Ubuntu 7.10
« Respuesta #10 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
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

microlost

  • Visitante
Re: Compilar en C - Ubuntu 7.10
« Respuesta #11 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;

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Compilar en C - Ubuntu 7.10
« Respuesta #12 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

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Compilar en C - Ubuntu 7.10
« Respuesta #13 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.