Sé que muchos de ustedes son programadores, pero muchos también inician en este tema de la programación.
Algunos usuarios que se inician, siempre preguntan ¿Cómo programar en C y/o C++ en Ubuntu?, así que aquí les dejo un "pequeño" tutorial para que puedan aprender.
ANTES DE INICIAR
Tenemos que instalar build-essential, ya que esta es una lista informativa de paquetes esenciales para poder compilar (voy a poner todo lo necesario teniendo en cuenta a los usuarios muy novatos que quieran programar), de esta manera:
Esto lo escribes en terminal, presionas ALT + F2 y en el cuadro que te aparece escribes gnome-terminal y presionas Enter
sudo apt-get install build-essential
Te pedirá una contraseña, que es la que utilizas para "entrar" a Ubuntu
(Ojo, si tienes el CD de Ubuntu, mételo en la unidad de CD o DVD, el que tengas y te dirá si quieres abrir el gestor de paquetes, le das clic en esta opción y se abrirá synaptic, entonces buscas build-essential y lo marcas para intalar, clic con el botón derecho y marcar para instalar, eso si, desconecta por este momento la conexión a Internet, para que descargue los paquetes desde el CD y no de Internet, das clic en el botón aplicar, que se encuentra en la barra de herramientas, esperas un rato y listo)
Si todo marcho a la perfección, ya estamos listos para programar
LENGUAJE C EN UBUNTU
1.- Abres terminal (como te explique mas arriba) y haces lo siguiente (para iniciar, solo usaremos consola, aunque existen otras alternativas gráficas como Anjuta, Code::Blocks, Eclipse, etc...):
usuario@equipo:~$ pico ejemplo.c
(usuario y equipo dependen de tu equipo, los pongo para referencia)
(En este ejemplo uso el editor pico, y el archivo que voy a crear es el ejemplo.c)
Se va a "limpiar" la terminal y ahí puedes poner el código para tu programa, en este caso voy a hacer el famoso "Hola mundo"
#include <stdio.h>
int main()
{
printf("Hola mundo");
printf("\n");
return 0;
}
Una vez terminado, oprimes CONTROL + O (Es O, no un cero)para indicar que lo vamos a guardar, la terminal te va a decir si realmente quieres guardarlo con este nombre (en este caso ejemplo.c) y para indicar que si, basta con apretar Enter, ahora a salir de este editor con un CONTROL + X y regresas a terminal, ahora para compilarlo, tienes que escribir en terminal:
gcc ejemplo.c -o ejemplo
Con esto le indicamos que vamos a compilar el archivo ejemplo.c con el compilador gcc, que es el utilizado en Linux para C, y que a la salida (-o, ojo, no es un cero, es una o) de el ejecutable ejemplo.
Ahora bien, a ejecutar nuestro programa con un:
./ejemplo
Desde terminal y obtenemos esto:
usuario@equipo:~$ ./ejemplo
Hola mundo
Te pongo este otro que suma 2 números:
En terminal escribimos:
pico suma.c
Y en el editor ponemos este código:
#include <stdio.h>
int x,y,z;
int main(){
printf("Dame el primer numero: ");
scanf("%d",&x);
printf("\n");
printf("Dame el segundo numero: ");
scanf("%d",&y);
z=x+y;
printf("\n\n El resultado de la suma es :%d\n",z);
return 0;
}
Lo guardamos con CONTROL + O, presionamos Enter y salimos con CONTROL + X.
Lo compilamos y creamos el ejecutable:
gcc suma.c -o suma
Ahora lo ejecutamos:
./suma
Y este es el resultado (voy a sumar 88 mas 77) :
usuario@equipo:~$ ./suma
Dame el primer numero: 88
Dame el segundo numero: 77
El resultado de la suma es: 165
Todo esto lo hemos hecho desde la carpeta personal, por lo tanto los archivos se encuentran ahí, tanto el código fuente (los archivos con extensión .c) como los ejecutables (los archivos que llevan el mismo nombre que los del código fuente pero sin extensión)
LENGUAJE C++ EN UBUNTU
Para poder programar en C++, lo único que tenemos que hacer de diferente respecto a la compilación con C, es utilizar el compilador g++ en lugar de gcc, y darle el nombre adecuado a los archivos que contienen el código fuente, por ejemplo, voy a compilar el famoso "Hola Mundo", ahora en C++, queda de esta manera:
usuario@equipo:~$ pico ejemplo.cpp
(En este ejemplo uso el editor pico, y el archivo que voy a crear es el ejemplo.cpp)
Si notas la diferencia, uso la extensión cpp para indicar la diferencia con los archivos de C, aunque en general se puede utilizar cualquier extensión, no tiene que ser cpp o c.
En teminal pongo el código:
#include <iostream>
using namespace std;
int main (){
cout<<"\nHola mundo\n";
return 0;
}
Y lo guardamos de la misma manera que los archivos de C.
Ahora lo vamos a compilar y crear el ejecutable:
g++ ejemplo.cpp -o ejemplo
Con esto le indicamos que vamos a compilar el archivo ejemplo.cpp con el compilador g++, que es el utilizado en Linux para C++, y que a la salida (-o, ojo, no es un cero, es una o) de el ejecutable ejemplo.
Ahora bien, a ejecutar nuestro programa con un:
./ejemplo
Desde terminal y obtenemos esto:
usuario@equipo:~$ ./ejemplo
Hola mundo
Cabe decir que los programas son compilados y ejecutados en consola, así como el resultado aparece también en consola.
COMPATIBILIDAD ENTRE PROGRAMAS REALIZADOS EN UBUNTU CON WINDOWS Y VICEVERSA
Después de realizar nuestros programas en Ubuntu, estos NO FUNCIONARÁN en Windows, un ejecutable de Ubuntu solo lo será para las distribuciones Linux, en Windows NO.
Si se deseas que un programa realizado en Ubuntu funcione en Windows será necesario volver a compilar el código fuente, yo recomiendo DevC++ para dicha tarea (Pongo el Link para la descarga directa de DevC++ para Windows), aunque debo decir que solo será posible si se utilizan las librerias estándar para lograr la compatibilidad, pero al iniciar solo se utilizan dichas librerias.
Caso contrario, si un programa fué realizado en Windows, solo bastará con recompilar dicho programa mediante terminal, eso si, el archivo con el código fuente debe estar, de preferencia para evitar mas trabajo, en la carpeta personal.
Espero que les sea de utilidad, no olviden que el programar es como aprender a manejar, al principio es difícil, pero con mucha práctica se adquiere destreza...

Hola Catrip: Excelente
Hola Catrip:
Excelente tutorial. Eso sí, me parece que deberías moverlo a la sección de Tutoriales y Trucos. Más que nada, para que esté más visible para futuras búsquedas en el foro.
Saludos.
-------------------------------------------------------
mi blog: www.patagonianuser.blogspot.com
Ad augusta per angusta
mi blog: www.patagonianuser.blogspot.com
Ad augusta per angusta
Hilo movido
Movidooooooooo a tutoriales y trucos, ya deberías saber que las bitacoras no son para esto.
Equipo de Ubuntu-es
Las tres cosas más peligrosas del mundo son: un programador con un soldador, un ingeniero de hardware con un parche de software y un usuario con una idea
Upss...
Perdón, se me pasó esta vez
® Sé libre, sé tu mismo, usa Ubuntu
error
ke tal, realmente esta muy bien el tuto...
pero yo tengo un problema al compilar el archivo,
me sale este error
ejemplo.c:1:2: error: invalid preprocessing directive #incluide
ejemplo,c: In function 'main':
ejemplo.c:4: warning: incompatible implicit declaration of built-in function 'printf'
y la verdad no se que sea, ni por que me para
ojala pudieras ayudarme
zalu2
Tienes error...
Cuando declaras el uso de una libreria en C, se hace con un
# include
Y no # incluide
Tal vez en esto tienes error, pero sería bueno que postearas el codigo del programa que estas escribiendo para poder señalarte posibles errores...
® Sé libre, sé tu mismo, usa Ubuntu
Tu aporte me parece muy
Tu aporte me parece muy interesante, pero tiene una pega: no anima a programar, mas bien al contrario, lo hace parecer complicado.
Sugieres que se use un IDE para hacer código cruzado, en concreto el Dev-C++; ¿por qué no para hace código nativo? De hecho es lo que yo acabo de hacer con CodeBlocks (otro IDE) el cual instalé siguiendo las instrucciones en su wiki para instalación en ubuntu en un plis plas y funciona como un cañón, para colmo el CodeBlocks para windows funciona en wine directamente desde la instalación en la partición windows (ojo con las rutas, hay que reconfigurarlas todas si se pretende compilar desde wine). Una vez instalado el IDE todo lo que hay que hacer es buscarse un tutorial de programación C/C++ y hacer código, ya se encargará el IDE de los detalles ;)
Muy buen aporte
Holas, es muy buen aporte, eso si podrias mejorar el tutorial para impulzar a programar y que no parezca dificil programar, para poder animar a programar
Tux es mas seguro que Clippy de Office!!
Tux es mas seguro que Clippy de Office!!
Good
Muy Bueno Amigo Eso era justo lo que me faltaba (no sabia como hacer eso de compilar)aprender.
Aunque tambien podes descargarte otros programas parecidos al Borland C++ usado en windows. yo usaba el anjuta pero no se mucho por que la sintaxis es diferente creo no ?
:S
AMD 64 x2 Dual Core 4000++
NVIDIA 8400 GS
Estoy para aprender y compartirlo
AMD 64 x2 Dual Core 4000++
NVIDIA 8400 GS
Estoy para aprender y compartirlo
Muchas gracias
¡Muchas gracias por tu tutorial!
Me ha resultado perfecto para comenzar a programar en C++ en Ubuntu. Además, creo que anima a programar y cuantos más programadores y programas haya más popular será este excelente sistema.
La única "pega" que le podría poner es que uno se queda con ganas de más. ¿Has pensado en hacer algún tipo de continuación?
Gracias
Muchas Gracias, tu tutorial me ha venido perfecto para iniciar en la programacion.
PD: Este tutorial no tiene alguna continuacion?
interesante
hola soy profesor de refrigeracion con plc y estado leyendo algo de algoritmo de goerzel por que quiero encender un aire desde un telefono utilizando plc mas un lenguaje de programacion osea que cuando llame a x numero de telefono me de la opcion de encender o apagar el aire acondicionado que esta conectado a mi plc omrom o direct soft. en fin en http://en.wikipedia.org/wiki/Goertzel_algorithm hay un ejemplo de DTMF pero leyendo tu tutorial trate de compilarlo pero me sale Permission denied.
me gustaria saber como compilo este programa o resuelvo mi problema.
DTMF
Es posible que ya tengas resuelto este problema. Pero personalmente preferiría poner un chip detector de DTMF que entrega en binario para el plc. Existen unos de marca realtek RTS8503G o uno parecido.
no guarda
esta muy bien este tutorial, de hecho es lo que andaba buscando, pero tengo un problema:
cuando le doy guardar(Ctrl+o) no lo hace. que puedo hacer?.
El bueno.com
El bueno.com
no guarda
Esta muy bueno tu tutorial, es lo que andaba buscando, solo tengo un pequeño problema,cuando le doy:
guardar (Ctrl+o) no lo hace, que puedo hacer?.
El bueno.com
El bueno.com
¿No guarda?
¿Estas seguro de hacer CTRL + O?, de todas formas, el utilizar el editor pico solo es por "elegancia", pero siempre puedes crear tus programas utilizando el editor de textos (gedit).
® Sé libre, sé tu mismo, usa Ubuntu
Excelente Tutorial
Me resultó excelente ya que solo tecleo y ni un solo problema, clarísimo. Gracias por tu aporte.
ejemplo.c:2:19: error:
ejemplo.c:2:19: error: conio.h: No existe el fichero ó directorio
Alguien sabe porque la libreria conio.h da error? Con quitarla supongo que funcionara... pero quiero mi getchar u_U!
conio.h propiedad de borland c
hola, primero una felicitacion por tu tutorial esta excelente, yo ya uso un ide que me gusta mucho ( eclipse ), pero queria aprenderlo de esta forma que es la 'natural' por asi decirlo, excelente.
para cek: la libreria conio.h es propiedad de borland c, lo cual no la puedes usar en linux, hay varias alternativas, no tengo los detalles ( usa google ).
Y pues para mi esto no es un tutorial de motivacion para persuadirte a programar, creo que el que quiere programar lo hace, yo veo este tutorial como una opcion para aprender a compilar sin usar un IDE que varios critican que es mas facil o menos pasos, yo lo veo mas como una alternativa de cuando no lo tienes.
Un saludo
saludo
!congratulaciones! buen tutorial deberias ir pensando en el modo grafico
Para que vives?
Para que vives?
no sale lo compila pero no hace :(
nicolas@nicolas:~$ gcc suma.c
nicolas@nicolas:~$ ./suma
bash: ./suma: No existe el fichero ó directorio
nicolas@nicolas:~$ ./suma.c
bash: ./suma.c: Permiso denegado
esos son los errores que salen!!! muchas gracias y muy bueno el tuto...
No, no, no...
Hola Nicolas1988, esta a medias tu compilación/ejecución, te explico:
El archivo fuente (suma.c) necesita ser compilado y, EL RESULTADO DE LA COMPILACIÓN, deberá ser ejecutado.
Tu ya tienes el fichero suma.c, el cual es el código fuente, pero, cuando realizas un
Solo estas compilando el archivo pero no estas indicando el fichero que será el resultado de la compilación, por lo que se toma un archivo llamado a.out, que es el fichero por defecto del resultado de la compilación.
Deberás hacer, después del gcc suma.c, un
Ya que este archivo ha sido el resultado de la compilación, pero no hacer un ./suma.c, porque el archivo suma.c NO ES EL EJECUTABLE, SOLO ES EL CÓDIGO FUENTE por esa razón no lo puedes ejecutar.
Ahora, si tu deseas crear un archivo ejecutable con un nombre "personalizado", deberás hacer un:
Donde suma_ejecutable es el nombre del archivo ejecutable que quieras (puedes usar el nombre que quieras)
Ejemplo, si quiero que el código del archivo para sumar 2 números se compile y sea creado un archivo ejecutable con el nombre suma_2_numeros, entonces se hará:
Y después para ejecutarlo:
NOTA:
Es importante LEER TODO EL TUTORIAL antes...
® Sé libre, sé tu mismo, usa Ubuntu
yata!
Era la emocion q tenia q no lei todo muchisimas gracias por corregirme. una pregunta mas algun libro q me recomiendes para seguir aprendiendo desde lo basico a lo mas complejo? desde ya muchas gracias!
error: al momento de guardar el programa
Despues de guardar el archivo con las teclas: control+O y pulsar enter me sale el siguiente mensaje: [error guardando 'ejemplo.c': permiso denegado]
Si alguien pudiese ayudarme, quedare agradecido.
No es necesario...
Hola edu30, el utilizar la terminal para realizar todas y cada una de las "acciones" no es tan necesario, me explico:
El utilizar el editor pico es solo una alternativa, puedes utilizar el editor de textos gedit y guardar tu código en tu carpeta personal o puedes utilizar cualquier otro editor de textos. Repito el utilizar la terminal para guardar los archivos fuente solo es una alternativa...
® Sé libre, sé tu mismo, usa Ubuntu
Siempre se pueden pasar por
Siempre se pueden pasar por el Grupo de Aprendizaje de Programación.
---------
Marcos Pérez
Grupo de aprendizaje de programación
Gallaenet.com
muyy buena explicacion
me sirvio mucho este pequeño tuto , ora si entendi , alguien tendra en sus curiosidades algun manualillo q indique como instalar bien Eclipse con su respectiva configuracion ????
Gracias y ojala sigan poniendo mas tutos q si pueda entender uno y mejor q aun q son pasito a pasito
muchas gracias
Excelente tu tutorial para gente como yo que recien arranca, gracias nuevamente
GRacias
Hola, muchas gracias, por haber escrito estas lineas, para los que estamos empezando.
Te lo agradezco mucho, no habia encontrado algo tan sencillo y claro.
Un saludo.
uhhhmm ¿no es mejor instalar
uhhhmm ¿no es mejor instalar el netbeans o el eclipse? bueno la verdad que así te das cuenta realmente del proceso
hola muy bueno el tutorial
hola muy bueno el tutorial pero cuando le doy compilar me sale este error.
efren@efren-desktop:~$ gcc ejemplo.c-o ejemplo
gcc: ejemplo.c-o: No existe el fichero ó directorio
efren@efren-desktop:~$
muchas gracias por la colaboracion que me puedan prestar.
EDR2947
Es solo un descuido
Supongo que todo lo demás lo hiciste correctamente entonces el error sería a la hora de compilar... el -o debe ir separado ... nada más eso
.... Pez que nada contra la corriente.....muere electrocutado.......(ya empiezo a sentir la corriente fluir por mi)....
gracias por el aporte
gracias por el aporte ahora programare en c en unbuntu
gracias por el aporte
gracias por el aporte
gracias por el aporte
gracias por el aporte
Gracias
Este tutorial me ayudo a hacer correr unos programas q tenia =P
Je Peralta!!!
gracias ^^
muchas gracias me sirvio de mucho,, pero tengo una duda,, este es mi codigo,, solo queria imprimir el nombre de quien escriba, para eso use CHAR
: #include
int main(){
char nombre [10] ;
printf("dame tu nombre");
scanf("%s",&nombre);
return 0;
}
pero al compilar me marca el siguiente error :S :
nuevo.c: In function ‘main’:
nuevo.c:8: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[10]’
espero y me puedan ayudar,, gracias ^^
Problema con apuntadores
Hola ichai, tu problema es que, un vector de caracteres ya es, por "naturaleza" un apuntador a una cadena y tu estás recibiendo la cadena y la estas "redirigiendo" a un apuntador de apuntador.
En palabras simples, en el scanf("%s",&nombre) utilizas el operador &, pero, como te he escrito, un vector de caracteres ya es un apuntador a una cadena, por lo que solo debes escribir:
scanf("%s",nombre);
Te modifico tu programa que has escrito y queda de esta manera:
#include ^stdio.h^ int main(){ char nombre [10] ; printf("dame tu nombre : "); scanf("%s",nombre); printf("\n\n Tu nombre es: %s\n\n",nombre); return 0; }Nota, empleo el símbolo ^ ya que el usar los símbolos de mayor que y menor que no aparecen, solo has el cambio.
Si te fijas, de esta manera ya funciona sin ningún problema...
Exelente tutorial y exelentes resultados.
yo no se absolutamente NADA de C, pero el año que viene voy a estudiar computación. :)
Tengo un libro que enseña C del año 1983, pero no especifica nada. Supongo que es para los que ya sabían bastante del tema en esa época. Quise escribir unas cosillas, pero nunca supe donde. Entonces buscando encontré un programa que escribiendo en él, eligiendo el lenguaje de programación y compilando, se puede crear el programa.
Bien, escribí sin errores los ejemplos del libro en SciTE, pero no me los pudo compilar. Incluso el tuyo tampoco anduvo.
Entonces seguí tus pasos por terminal, y pude al fin ver un resultado de un programa en C.
Muy buen tutorial...
El mini tutorial te salio muy bien!
Me gusto mucho el minitutorial. Corto, sencillo y fácil de entender. Probé tus ejemplos y todo ha funcionado. Te felicito.
Programo en Python, y algo de .NET
Ahora tendré que leer el manual de C. Saludos a todos.
ERROOORR
Estupendo el tutorial. el problema es que a mi me da este error cuando intento compilar:
catalin@catalin-desktop:~$ pico ejemplo.c
catalin@catalin-desktop:~$ gcc ejemplo.c -o ejemplo
ejemplo.c:1:20: error: studio.h: No existe el fichero o el directorio
ejemplo.c: In function ‘main’:
ejemplo.c:4: warning: incompatible implicit declaration of built-in function ‘printf’
:D:D:D:D:D:D:D:D:D:D:D
Ya sta, creo que habia escrito algo mal.
Gracias por el tuto.
CKLA
ok
instalate win2 si no te va bien con el software libre. saludos.
$man mujer
No existe entrada de manual para mujer
Qué clase de consejo es este
Qué clase de consejo es este si se puede saber?
Gallaenet.com
?????
vos solo seguime la corriente y decí que sí!
jejejeje
$man mujer
No existe entrada de manual para mujer
no
no
Gallaenet.com
No, no, no
Hola Kroop, antes que nada lo primero que debes hacer es LEER completamente el tutorial, ya que tu error es el más común de los que existen en los que apenas van a programar por primera vez.
La librería a utilizar no es studio.h sino stdio.h (STanDar Input Output), solo haz ese cambio, quita la "u" que escribiste para la librería y fíjate que sea stdio.h
deberias
hoola ya aprendido todo esoo! pero eatria fenomenal que realizaras un tuto de las librerias o una estructura similar.. como en el dev c++
xD a ver si puedes o i ya hay una pasalo
Más y mejor
Sin duda la mejor de las maneras para empezar en el mundo de la programación en lenguajes estructurados es con un IDE del tipo CodeBLocks (Integrado en el centro de software de Ubuntu). Únicamente para hacerlo plenamente funcional se tienen que importar las corrspondientes librerias de la siguiente manera:
Una vez instalado, cabe destacar una serie de características que hacen la programación en C# peculiar en linux:
EL uso de "gets" en Codeblocks no esta contemplado por su "potencial forma insegura de peticion de datos entrantes" para sustituirlo podéis usar una petición de datos con entrada estándard -> fgets(Nombre,Tamaño,stdin);
Funciones como clrscr tampoco funcionaran como tal, las soluciones pueden ser tan diversas como poner comandos tipo consola sobre codigo fuente: System("clear"); o modificar la libreria correspondiente indicandole que cuando se llame a clrscr(); se haga referencia al comando de consola.
Saludos y a programar! :)
Cakitux versión 1.0.0
buen tuto pero....
me gusta, pero parece escaso.
queremos mas
donde todos piensan =, nadie piensa mucho
http://arealinux.blogspot.com/
jaja, no se quejen
la verdad muy bueno el aporte, no se porque quieren un programita con linda apariencia que les alente la maquina para programar, soy nuevo en ubuntu pero vengo de programar con el tc borland, y entre el tc y este pico me quedo mil veces con el pico jaja, por lomenos aqui te deja utilizar el mouse no como el d.o.s. de windows sobre el que corre el tc, ademas estoy teniendo prblemas para compilar con los ide, hasta ahra ninguno me dejo compilar, y eso que les configure para que utilicen g++ y gcc como dicen en todos los tutoriales!
Net Beans
yo soy nuevo en esto de C y C++ en mi Universidad usamos el Borland pero quiero aprender a programar usando el Netbeans... ^_^ en realidad me gustaria programar en estos lenguajes usando el IDE Netbeans, necesito su ayuda para terminar de configurarlo en ubuntu 11.04 ..excelente aporte.
Sólo hay dos tipos de lenguajes: aquellos de los que la gente se queja y aquellos que nadie usa.
Páginas