jueves, 5 de agosto de 2010

Instalar matlab R2010a en gentoo X84_64





Para instalar matlab necesitamos crear una carpeta con el nombre que ustedes quieran y crear otra para la descomprimir el ISO.

Lo instale en gentoo 64 bits






Una ves que tengamos las carpetas creadas que en mi caso las nombre Xm y Traer, en donde Traer fue la ruta donde descromprimí el ISO de matlab así como la carpeta Xm sera la dirección donde se instalara MATLAB.
Para todo esto a mi en particular me pidío la libreria libXp, para que todo funcionara bien, de todo esto en mi maquina de trabajo tengo instaldo el Netbeans 6.9 que es requisito de la instalación de MATLAB que pida JDK

Posteriormente nos dirigimos a la carpeta donde se descomprimió MATLAB que en mi caso es Traer que en ella misma ejecutamos el comando #sh install (como root)



Una vez ejecutado el comando nos tiene que salir una asistente de instalación de matlab, en caso de no ser así, tienen que dar permisos de lectura, escritura y ejecuación a todo los archivos con el comando # chmod -Rf 777 * . (todo como root).




ahora seleccionamos la opción fuera de internet, damos OK



Nos dirigimos a la carpeta que se creo donde se instalar el contenido de Matlab que en mi caso fue Xm mi HOME que es joussef, nos pregunta si la carpeta se seleccionada es la correcta y le damos OK.


Insertamos la clave correspondiente y hacemos click en OK




Una vez dado la clave correctamente nos pregunta en que plataforma es, el total de bytes que se instalara, y si todo esta a nuestro gusto damos OK. Una ves concluido toda la instalación damos ok para que nos mande al Activate MathWorks Software, que si lo queremos dar de alta después por Internet estamos con nuestro derecho.


Optamos por la Opción NEXT, nos pedirá el archivo de licencia que viene en nuestro paquete original de matlab.




Terminamos con la Instalación espero que aya servido...

martes, 13 de octubre de 2009

Tarifas de Luz y Fuerza del Centro

Las Nuevas tarifas son las que tenemos que pagar por las borracheras, orgias de los grandes que dirigen nuestro país. Como el Mediocre de Calderon, camaras de diputados etc,etc.

Que pasa con el pueblo de México


Para empezar cuales son los problemas inmediatos???????????? tener celuar, intenert, coche. o disculpen mi ignoracia me harian el favor de especificarlos.

Por movimientos así se inpidio que se privatizara la UNAM, ademas no crees tu que todo trabajor tiene derecho a una Jubilación, y a un salario digno

para mi los problemas inmediatos es la falta de empleo que hay al no exitir un trabajo para toda la gente en el país y en especial para humanidades.

Y si! acabemos con los sindicatos rateros, pero primero acabemos con un gobierno mas ratero!! acabemos con las mafias. si, pero, que no la mafia mas grande es la que esta formada por el gobierno??? por favor ya es hora de tomar conciencia, de pensar en todos y no solo en uno mismo, de ser solidarios y ayudarnos mutuamente, de pensar "en un como vivir adecuado en el mundo" o no compañeros??? socialista??? quiza, es preferible a ser un capitalista, mediocre y ratero!!!

Si el coraje es por el pago de jubilaciones y por el pago de un salario arriba del minimo, perdon compañeros pero dejenme decir que que mentalidad tan pobre, tipica del mexicanito y los cangrejos por si recuerdan ese dicho!! si no lo recuerdan investiguenlo, que no es mas razonable pedir esos mismos derechos que tiene los del SME para todo el pais, en vez de seguir conformandose con la miseria? ya basta de estupideses, dejen de estudiar para joderse unos a otros, mejor esforcemonos por ser seres pensantes y concientes y no solo querer "disfrutar la vida" 

Por favor pensemos antes de escribir!!


Aquí se ve la hermandad del pueblo, lamento decirlo porque soy Méxicano, en lugar de que se una para tener las mismas prestaciones que tiene el sindicato de Luz y Fuerza prefiere que estemos jodidos como casi todo el pais y seamos conformistas, aceptando las migajas que nos da el gobierno.

Si supuestamente el gobierno anúncia que esta en crisis, como se atreve a despedir a 66000 empleados jefes de familia, como quiere abrir fuentes de empleo cuando esta liquidando a compañia de LUZ y FUERZA, por favor,  despierten, no se dejen llevar por los medios de comunicación como TV Azteca, TELEVISA, MILENIO que no son mas que un grupo de  burgueses mediocres que no piensan, son titeres y estan obligados a decir lo que se les ordena y no puenden expresar su manera de pensar porque no tienen a nadie que los respalde, y automaticamente serian botados como lo hace el gobierno  a su pueblo.

ESTO ES INDIGNATE.


La madrugada del domingo 11 de octubre la presidencia de la república emitió el decreto mediante el cual desaparece la empresa paraestatal Luz y Fuerza del Centro, con lo cual se propina un fuerte golpe a la soberanía nacional, ya que se disuelve una de las últimas empresas propiedad de la nación y que son estratégias para el desarrollo del país.

Los argumentos que esgrime Felipe Calderón son una réplica exacta de los que utilizaron los gobiernos de Carlos Salinas y Ernesto Zedillo para privatizar las empresas nacionales, aduciendo a su ineficiencia, altos costos, baja productividad, elevados subsidios y grandes privilegios sindicales. Esta perspectiva obedece a una visión neoliberal de las empresas paraestatales, las cuales pretenden ser conducidas bajo la perspectiva de acumulación capitalista, generando ganancias y perdiendo de vista la responsabilidad social. La compañia de Luz y Fuerza del centro significa la base del desarrollo social y económico del país, por lo que se desempeño no puede ser calificado en función a criterios capitalista de rentabilidad, sino por los aportes que realiza al desarrollo de la sociedad.

El propósito privatizar es un largo sueño acariciado por el sector capitlista y que bajo la presedencia de Calderón se ha movido paso a paso, primero interviniendo abiertamente en la vida interna del Sindicato Mexicano de Electrisistas, negando la toma de nota a la diregencia sindical bajo el argumento de que no fueron limpias las elecciones internas COMO SI LA PRESIDENCIA DE CALDERON GOZARA DE LA LEGITIMIDAD PARA HABLAR SOBRE ELECCIONES LIMPIAS. posteriormente ante la resistencia del sindicato para no permitir la violación de la autonomia, el gobierno federal decreta la liquidación de la empresa. Dejando sin empleo a 66 mil trabajadores, desapareciendo una empresa pilar en el desarrollo nacional.

El gobierno de Calderón dista mucho de ser sensible a las necesidades social, ya que en su decrete de extinción  publicado en el Diario Oficial de la federación, la ubica como una de las principales sangrías del presupuesto nacional, exhibiendo que para el presente año las transferencias de recursos serán de 41,945 millones de pesos, pretendiendo demostrar la ineficiencia de la compañia. Sin embargo, al sistema financiero el cual cerca del 90% está en manos del capital extrangero y que es ineficiente por que no financia las actividades productivas y tienen los cobros más altos del mundo por concepto de comiciones, solamentes en este año se le asignarán recursos vía el IPAB por 528 millones 422 mil 928 pesos, de éstos, 378 millones 95 mil 903 pesos serían para servicios personales; 5 millones 476 mil pesos para materiales y suministros; 137 millones 386 mil 65 pesos para servicios generales. Es decir que cada día de operaciones del IPAB costará a los mexicanos poco más de 1 millon de pesos. Sin embargo este tipo de sangrías nunca se cuestionaran.

El ataque a la insdustria electrica nacional esconde un transfondo de los negocios de agentes gubernamentales, como es el caso de la licitación que se otorga a la empresa española IW TELECOMUNICACIONES, cuyos principales socíos en México son el ex gobernador de Nuevo León Fernando canales Clariond y el ex secretario de energía del gobierno Foxista Ernesto Martens, para utilizar la infraestructura de LyF y colgar líneas de fibra óptica para proporcionar servicios de Tv por cable, teléfono e internet, mejor conocido como el TRIPLE PLAY. La imposibilidad para concretar este jugoso negocio la significa el SME, ya que la contratación se tendría que hacer mediante un acuerdo con éste, pues este es el titular del contrato colectivo de la LyF, por tanto, el gobierno de Calderón trazó la estrategia de desconocer al sindicato y posteriormente liquidar la compañia, para llevar a cabo la negociación.

La defensa de la LyF es tarea de todos, ya que es propiedad de todos los méxicanos y estamos obligados a defender nuestro patrimonio nacional.

El ámbito de acción del universitario debe salir de las aulas para ampliarse a la lucha con el resto de la sociedad unida en una sola clase.


ESTUDIANTES Y PROFESORES DE LA FACULTAD DE ECONOMIA UNAM


Recibi este volante en la FACULTAD DE CIENCIAS UNAM


Gracias por su atención.

viernes, 25 de julio de 2008

25 - Julio 2008

No es verdad que vivimos,
no es verdad que duramos
en la tierra.
¡Yo tengo que dejar las bellas flores,
tengo que ir en busca del sitio del misterio!
Pero por breve tiempo,
hagamos nuestros los hermosos cantos.

'El amor es la fuerza más humilde, pero la más poderosa de que dispone el mundo.' Mahatma Gandhi

domingo, 22 de junio de 2008

22- Julio - 2008


Cuidado con el Bestia Hombre, por que es el peon del diablo, solo entre los primates de Dios, mata por gusto o por lujuria o por codicia, en verdad asesinara a su hermano para poseer lo que es de su hermano, que no se propague en grandes numeros pues hara un desierto de su hogar y el de nosotros, evitenlo por que es el heraldo de la Muerte.

Probablemente esto es muy tonto para algunas personas que piensan que nunca va cambiar lo que pienso, pero estoy seguro es que hare ruido en algunas mentes que esten de acuerdo conmigo , por que no pienso cambiar la mentalidad de los otros, pero si hacer un poco de conciencia en la humanidad.

Dejemos de estudiar para jodernos unos atros, ayudemos con humildad al quien mas lo nececite, ayudemos sin pedir nada acambio, trabajemos en equipo para aumentar nuestro conocimiento y asi mismo ayudar a los demas.

Manifestemos la necesidad de aprender para progresar y protegernos de las mentes malevolas que quieren acabar con el conociemiento para beneficio de algunos. Seamos responsables y luchemos por esa gente que si vale la pena.


Muy buena suerte a todos y si algun dia llego o llegan a pedir ayuda, no duden en proporcionarla,
gracias por tomarse la delicadesa de leer estos parrofos.

Que Dios los bendiga a todos (sin afectar a otras religiones).

domingo, 4 de noviembre de 2007

GCC

Etapas de la compilación:

  • Preprocesado

  • Compilación

  • Ensamblado

  • Enlazado

Si tienes problemas al compilar en Ubuntu 7.04 posiblemente te falte la librería build-essential que tendrás que instalarlo desde el synaptic

Compilación directa:

$ gcc hello.c -o hello
$ ./hello
¡Hola, Mundo!

La primera orden le dice al gcc que compile y enlace el archivo fuente hello.c, generando el ejecutable indicado por el argumento -o hello. La segunda orden ejecuta el programa, obteniéndose como resultado la tercera línea.

Varias cosas han pasado sin darnos cuenta. Lo primero que ha hecho gcc es manda al preprocesador (cpp) el fichero hello.c para expandir macros e incluir el contenido de los archivo #included. Seguido, se compila el código preprocesado en código objeto, para finalmente el linkador (ld) crea el hello binario.

Veamos este proceso paso a paso. Si usamos la opción -E paramos el proceso justo después de realizarse la precompilación:

$ gcc -E hello.c -o hello.i

Podemos observar en el fichero hello.i el resultado del preprocesado, con el fichero stdio.h incrustado dentro de él. Continuando con el proceso, usaremos la opción -c para parar despúes de realizar la compilación.

$ gcc -c hello.i -o hello.o

Ya tan sólo queda enlazar el fichero objeto con las librerías del sistema para generar el ejecutable:

$ gcc hello.o -o hello

Para saber el punto de arranqu gcc se fija en la extensión del archivo de entrada.. Las extensiones más comunes reconocidas por gcc son:

Extensión

Tipo

.c
.C,.cc
.i
.ii
.S,.s
.o
.a,.so

Código fuente Lenguaje C
Código fuente Lenguaje C++
Código fuente C Preprocesado
Código fuente C++ Preprocesado
Código fuente Lenguaje Ensamblador
Código objeto compilado
Código de librería compilado

Aunque lo normal es crear un ejecutable a partir del código fuente, a veces resulta conveniente parar el proceso en un punto determinado. Un caso habitual es cuando queremos obtener el código objeto para integrarlo en una librería, por lo que no es necesario la etapa de enlace. Otro caso cuando queremos obtener el código del precompilado para chequear algún conflicto que tengamos entre los archivos includes y nuestro código.

La mayor parte de los programas de C se generan partiendo de varios fuentes, códigos objeto y librerías. gcc tomará los ficheros que le damos de entrada, los procesará convenientemente, y los enlaza para generar un único ejecutable. Para facilitar esta tarea se suele utilizar la utilidad make.

Opciones comunes de la línea de comandos

La lista de opciones ocuparía varias páginas, por lo que sólo veremos las opciones más comunes:

Opción

Descripción

-o

Nombre del archivo de salida. Si no se especifica al generar el ejecutable, el nombre por defecto será a.out

-c

Compilar sin enlazar

-DMAC=VAL

Define el macro MAC y le asigna el valor VAL

-IDIR

Sitúa el directorio DIR delante de la lista de directorios dónde buscar los ficheros includes.

-LDIR

Sitúa el directorio DIR delante de la lista de directorios dónde buscar las librerías.

-static

Enlaza con librerías estáticas. Por defecto enlaza las librerías dinámicamente.

-lFICH

Enlaza con la librería libFICH

-g

Incluye información estándar para depurado

-ggdb

Incluye información específica para el depurador gdb

-O

Optimiza el código compilado

-ON

Especifica un nivel de optimación del código entre 0 y 3

-ansi

Soporta el C ANSI/ISO estándar

-pedantic

Emite todos los avisos requeridos por el C ANSI/ISO

-pedantic-errors

Emite todos los errores requeridos por el C ANSI/ISO

-traditional

Soporta la sintáxis Kernighan & Ritchie del lenguaje C

-w

Suprime todos los mensajes de aviso (una mala idea)

-Wall

Emite todos los avisos que el gcc pueda generar.

-werror

Convierte todos los avisos en errores, lo que parará la compilación

-MM

Crea una lista de dependencias compatible con make

-v

Muestra los comandos utilizados en cada etapa de la compilación

Un compilador cruzado es un compilador capaz de crear código ejecutable en otra plataforma distinta a aquélla en la que él se ejecuta. Esta herramienta es útil cuando quiere compilarse código para una plataforma a la que no se tiene acceso, o cuando es incómodo o imposible compilar en dicha plataforma (como en el caso de los sistemas empotrados).
Un ejemplo de un compilador con estas posibilidades es el NASM, que puede ensamblar, entre otro formatos, ELF (para sistemas UNIX) y COM o EXE (para DOS).

El conjunto de gcc, binutils y gdb permiten la generación de compiladores cruzados - compiladores que generan código para plataformas distintas en las que se ejecután.

Hace falta una cadena de compilación completa, y aparte una implementació de yacc y lex (normalmente, si se está usando una máquina Linux o el port de win32 de las utilidades GNU, cygwin), estas son bison y flex)

La terminología que se usa en las cadenas de compilación de las utilidades GNU es:

  • build host: Máquina donde se va generar el compilador cruzado. los scripts de compilación detectan automáticamente el sistema operativo donde se está intentando compilar.
  • host: Máquina donde va a ejecutarse el compilador destino, suele coincidir con la máquina donde se está compilando.
  • target: Máquina y sistema destino para el cual el va a generarse los ficheros.

Tutorial sobre el compilador GCC

The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdx++, libgcj) . Tomado de la pagina web oficial: http://gcc.gnu.org/

GCC es un compilador integrado del proyecto GNU para C, C++, Objective C y Fortran; es capaz de recibir un programa fuente en cualquiera de estos lenguajes y generar un programa ejecutable binario en el lenguaje de la máquina donde ha de correr.
La sigla GCC significa "GNU Compiler Collection". Originalmente significaba "GNU C Compiler"; todavía se usa GCC para designar una compilación en C. G++ refiere a una compilación en C++.

Sintaxis.

gcc [ opción | archivo ] ...
g++ [ opción | archivo ] ...

Las opciones van precedidas de un guión, como es habitual en UNIX, pero las opciones en sí pueden tener varias letras; no pueden agruparse varias opciones tras un mismo guión. Algunas opciones requieren después un nombre de archivo o directorio, otras no. Finalmente, pueden darse varios nombres de archivo a incluir en el proceso de compilación.

Ejemplos.

gcc hola.c
compila el programa en C hola.c, genera un archivo ejecutable a.out.
gcc -o hola hola.c
compila el programa en C hola.c, genera un archivo ejecutable hola.
g++ -o hola hola.cpp
compila el programa en C++ hola.c, genera un archivo ejecutable hola.
gcc -c hola.c
no genera el ejecutable, sino el código objeto, en el archivo hola.o. Si no s indica un nombre para el archivo objeto, usa el nombre del archivo en C y le cambia la extensión por .o.
gcc -c -o objeto.o hola.c
genera el código objeto indicando el nombre de archivo.
g++ -c hola.cpp
igual para un programa en C++.
g++ -o ~/bin/hola hola.cpp
genera el ejecutable hola en el subdirectorio bin del directorio propio del usuario.
g++ -L/lib -L/usr/lib hola.cpp
indica dos directorios donde han de buscarse bibliotecas. La opción -L debe repetirse para cada directorio de búsqueda de bibliotecas.
g++ -I/usr/include hola.cpp
indica un directorio para buscar archivos de encabezado (de extensión .h).

Sufijos en nombres de archivo.

Son habituales las siguientes extensiones o sufijos de los nombres de archivo:
.c fuente en C
.C .cc .cpp .c++ .cp .cxx fuente en C++; se recomienda .cpp
.m fuente en Objective-C
.i C preprocesado
.ii C++ preprocesdo
.s fuente en lenguaje ensamblador
.o código objeto
.h archivo para preprocesador (encabezados), no suele figurar en la linea de comando de gcc

Opciones.

- c
realiza preprocesamiento y compilación, obteniento el archivo en código objeto; no realiza el enlazado.
- E
realiza solamente el preprocesamiento, enviando el resultado a la salida estándar.
-o archivo
indica el nombre del archivo de salida, cualesquiera sean las etapas cumplidas.
-Iruta
especifica la ruta hacia el directorio donde se encuentran los archivos marcados para incluir en el programa fuente. No lleva espacio entre la I y la ruta, así: -I/usr/include
-L
especifica la ruta hacia el directorio donde se encuentran los archivos de biblioteca con el código objeto de las funciones referenciadas en el programa fuente. No lleva espacio entre la L y la ruta, así: -L/usr/lib
-Wall
muestra todos los mensajes de error y advertencia del compilador, incluso algunos cuestionables pero en definitiva fáciles de evitar escribiendo el código con cuidado.
-g
incluye en el ejecutable generado la información necesaria para poder rastrear los errores usando un depurador, tal como GDB (GNU Debugger).
-v
muestra los comandos ejecutados en cada etapa de compilación y la versión del compilador. Es un informe muy detallado.

Etapas de compilación.

El proceso de compilación involucra cuatro etapas sucesivas: preprocesamiento, compilación, ensamblado y enlazado. Para pasar de un programa fuente escrito por un humano a un archivo ejecutable es necesario realizar estas cuatro etapas en forma sucesiva. Los comandos gcc y g++ son capaces de realizar todo el proceso de una sola vez.

Preprocesado.

En esta etapa se interpretan las directivas al preprocesador. Entre otras cosas, las variables inicializadas con #define son sustituídas en el código por su valor en todos los lugares donde aparece su nombre.

Usaremos como ejemplo este sencillo programa de prueba, circulo.c:

/* Circulo.c: calcula el área de un círculo.
Ejemplo para mostrar etapas de compilación.
*/
#define PI 3.1416

main()
{
float area, radio;

radio = 10;
area = PI * (radio * radio);
printf("Circulo.\n");
printf("%s%f\n\n", "Area de circulo radio 10: ", area);

}

El preprocesado puede pedirse con cualquiera de los siguientes comandos; cpp alude específicamente al preprocesador.
$ gcc -E circulo.c > circulo.pp
$ cpp circulo.c > circulo.pp
Examinando circulo.pp
$ more circulo.pp
puede verse que la variable PI ha sido sustituída por su valor, 3.1416, tal como había sido fijado en la sentencia #define.

Compilación.

La compilación transforma el código C en el lenguaje ensamblador propio del procesador de nuestra máquina.

$ gcc -S circulo.c
realiza las dos primeras etapas creando el archivo circulo.s; examinándolo con
$ more circulo.s
puede verse el programa en lenguaje ensamblador.

Ensamblado.

El ensamblado transforma el programa escrito en lenguaje ensamblador a código objeto, un archivo binario en lenguaje de máquina ejecutable por el procesador.

El ensamblador se denomina as:
$ as -o circulo.o circulo.s
crea el archivo en código objeto circulo.o a partir del archivo en lenguaje ensamblador circulo.s. No es frecuente realizar sólo el ensamblado; lo usual es realizar todas las etapas anteriores hasta obtener el código objeto así:
$ gcc -c circulo.c
donde se crea el archivo circulo.o a partir de circulo.c. Puede verificarse el tipo de archivo usando el comando
$ file circulo.o
circulo.o: ELF 32-bit LSB relocatable, Intel 80386, version 1, not stripped

En los programas extensos, donde se escriben muchos archivos fuente en código C, es muy frecuente usar gcc o g++ con la opción -c para compilar cada archivo fuente por separado, y luego enlazar todos los módulos objeto creados. Estas operaciones se automatizan colocándolas en un archivo llamado makefile, interpretable por el comando make, quien se ocupa de realizar las actualizaciones mínimas necesarias toda vez que se modifica alguna porción de código en cualquiera de los archivos fuente.

Enlazado

Las funciones de C/C++ incluídas en nuestro código, tal como printf() en el ejemplo, se encuentran ya compiladas y ensambladas en bibliotecas existentes en el sistema. Es preciso incorporar de algún modo el código binario de estas funciones a nuestro ejecutable. En esto consiste la etapa de enlace, donde se reúnen uno o más módulos en código objeto con el código existente en las bibliotecas.

El enlazador se denomina ld. El comando para enlazar
$ ld -o circulo circulo.o -lc
ld: warning: cannot find entry symbol _start; defaulting to 08048184
da este error por falta de referencias. Es necesario escribir algo como
$ ld -o circulo /usr/lib/gcc-lib/i386-linux/2.95.2/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o circulo /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-linux/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i386-linux/2.95.2 circulo.o -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-linux/2.95.2/crtend.o /usr/lib/crtn.o
para obtener un ejecutable.

El uso directo del enlazador ld es muy poco frecuente. En su lugar suele proveerse a gcc los códigos objeto directamente:
$ gcc -o circulo circulo.o
crea el ejecutable circulo, que invocado por su nombre
$ ./circulo
Circulo.
Area de circulo radio 10: 314.160004
da el resultado mostrado.

Todo en un solo paso.

En programa con un único archivo fuente todo el proceso anterior puede hacerse en un solo paso:
$ gcc -o circulo circulo.c
No se crea el archivo circulo.o; el código objeto intermedio se crea y destruye sin verlo el operador, pero el programa ejecutable aparece allí y funciona.

Es instructivo usar la opción -v de gcc para obtener un informe detallado de todos los pasos de compilación:
$ gcc -v -o circulo circulo.c

Enlace dinámico y estático.

Existen dos modos de realizar el enlace:
- estático: los binarios de las funciones se incorporan al código binario de nuestro ejecutable.
- dinámico: el código de las funciones permanece en la biblioteca; nuestro ejecutable cargará en memoria la biblioteca y ejecutará la parte de código correspondiente en el momento de correr el programa.
El enlazado dinámico permite crear un ejecutable más chico, pero requiere disponible el acceso a las bibliotecas en el momento de correr el programa. El enlazado estático crea un programa autónomo, pero al precio de agrandar el tamaño del ejecutable binario.

Ejemplo de enlazado estático:
$ gcc -static -o circulo circulo.c
$ ls -l circulo
-rwxr-xr-x 1 victor victor 237321 ago 4 11:24 circulo
Si no se especifica -static el enlazado es dinámico por defecto.

Ejemplo de enlazado dinámico:

$ gcc -o circulo circulo.c
$ ls -l circulo
-rwxr-xr-x 1 victor victor 4828 ago 4 11:26 circulo


Notar la diferencia en tamaño del ejecutable compilado estática o dinámicamente. Los valores pueden diferir en algo de los mostrados; dependen de la plataforma y la versión del compilador.

El comando ldd muestra las dependencias de bibliotecas compartidas que tiene un ejecutable:

$ gcc -o circulo circulo.c
$ ldd circulo
libc.so.6 => /lib/libc.so.6 (0x40017000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ gcc -static -o circulo circulo.c
$ ldd circulo
statically linked (ELF)
La compilación estática no muestra ninguna dependencia de biblioteca.

Resumen.

Para producir un ejecutable con fuente de un solo archivo:
$ gcc -o circulo circulo.c
Para crear un módulo objeto, con el mismo nombre del fuente y extensión .o:
$ gcc -c circulo.c
Para enlazar un módulos objeto:
$ gcc -o circulo circulo.o
Para enlazar los módulos objeto verde.o, azul.o, rojo.o, ya compilados separadamente, en el archivo ejecutable colores:
$ gcc -o colores verde.o azul.o rojo.o

Información adicional.

Sobre GCC:
man gcc
info gcc
página info de GCC, más completa y actualizada que la página man.

Sobre el depurador:
man gdb
info gdb
página info de GDB, más completa y actualizada que la página man.

Sobre uso de info:
info info
ofrece un tutorial paso a paso.
GNU info
un resumen de operación de info.




jueves, 4 de octubre de 2007

Super Basico

Construir el Código.

Regularmente cuando se trabaja a distancia con personas en diferente partes del mundo se hace primero el diagrama de flujo, el pseudocódigo y por ultimo el código fuente, todo esto por que no todos hablan tu idioma y este es el lenguaje universal del desarrollo de software.

sintaxis básica de C++ y los conceptos de construcción de programas suficientes para permitirle crear y ejecutar cualquier programa simple orientado a objetos. En el siguiente capítulo cubriremos la sintaxis básica de C y C++ en detalle. Todos los lenguajes de programación son traducidos de algo que suele ser fácilmente entendible por una persona (código fuente) a algo que es ejecutado por una computadora (código máquina). Los traductores tradicionalmente han sido divididos en dos categorías: intérpretes y compiladores.



BIBLIOTECAS EN PROGRAMACIÓN

En Informática(computación), una biblioteca es un conjunto de procedimientos y funciones (subprogramas) agrupadas en un archivo con el fin de que puedan aprovecharlas otros programas. Al proceso de hacer accesibles estos subprogramas al programa principal se le llama enlace (link).

Existen dos tipos de bibliotecas:

Las primeras se enlazan —o sea, arreglan las referencias a rutinas en el programa para que apunten a su localización en la biblioteca— en el momento de compilacióntiempo de ejecución. (en rigor en la fase de enlace de la construcción del programa objeto), mientras que las segundas se enlazan en

La denominación de biblioteca compartida hace énfasis en que, comúnmente, los procesos que la enlazan comparten una única parte de la memoria donde se encuentran las instrucciones de los subprogramas.

En Windows, archivos de bibliotecas dinámicas poseen extensión. DLL (Dynamic Link Library), mientras que las estáticas generalmente terminan en. LIB. En Unix y Linux, las bibliotecas dinámicas tienen extensión .so (Shared Object) y las estáticas .a (archive).

Nota terminológica

Habitualmente se emplea el término librería para referirse a una biblioteca, por la similitud con el original inglés library. Ambos términos, biblioteca y librería, son correctos según las definiciones ( [1], [2]) de la RAE, aunque los puristas consideran como correcta biblioteca. Esto se debe a que la traducción correcta de library es biblioteca, mientras que el término inglés para librería es book shoptienda de libros), aunque también podría ser bookshelf (estantería o mueble para guardar libros, librería). También es habitual referirse a ella con el término de origen anglosajón toolkit (conjunto, equipo, maletín, caja, estuche, juego (kit) de herramientas).

Aquí se muestra un contenido de las bibliotecas en Linux


En lenguaje C++ hay algunas bibliotecas


stdio.h


Que significa "standard input-output header" (cabecera estandar E/S), es en la librería estándar del lenguaje de programación C el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones y la definición de tipos usados por varias operaciones estándar de entrada y salida. Por motivos de compatibilidad, el lenguaje de programación C++ (derivado de C) también tiene su propia implementación de estas funciones, que son declaradas con el archivo de cabecera cstdio.
Las funciones declaradas en stdio.h son sumamente populares.

Funciones miembro
Las funciones declaradas en stdio.h pueden clasificarse en dos categorías: funciones de manipulación de ficheros y funciones de manipulación de entradas y salidas.

fclose, fopen, freopen, fdopen, remove, rename, rewind, tmpfile, clearerr, feof, ferror, fflush, fgetpos, getc, fgets, fputc, fputs, ftell, fseek, fsetpos, fread, fwrite, getc, getchar, gets, printf, fprintf, sprintfsnprintf, vprintf, perror, putc, putchar, fputchar, scanf, fscanf, sscanf, vfscanf, vscanf, vsscanf, setbuf, setvbuf, tmpnam, ungetc, puts

stdlib.h
Para usar todas las funciones de ésta biblioteca se debe tener la siguiente directiva
#include
Las funciones de la biblioteca pueden ser agrupadas en tres categorías básicas:
· Aritméticas;
· Números aleatorios; y
· Conversión de cadenas.
El uso de todas las funciones es sencillo. Se consideran dentro del capítulo en forma breve

atof, atoi, atol, strtod, strtol, strtoul, rand, srand, malloccallocrealloc, free, abort, abnormally, atexit, callback, exit, getenv, system, bsearch, qsort, abslabs, absolute value, divldiv.

conio.h
Declara varias funciones usadas llamando la consola del sistema operativo las rutinas de I/O.
Funciones disponibles:
cgets, clreol, clrscr, cprintf, cputs, cscanf, delline, getch, getche, getpass, gettext, gettextinfo, gotoxy, highvideo, inport, insline, kbhit, lowvideo, movetext, normvideo, outport, putch, puttext, textattr, textbackground, textcolor, textmode, ungetch, wherex, wherey, window, _setcursortype,

math.h
Funciones disponibles:
acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin, sinh, sqrt, tan, tanh,

C / string.h
Funciones disponibles:
memchr, memcmp, memcpy, memmove, memset, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strerror, strlen, strncat, strncmp, strncpy, strpbrk, strrchr, strspn, strstr, strtok, strxfrm,


INSTALACIÓN Dev-C++

PARA INSTALAR EL COMPILADOR SIGAN LAS SIGUIENTES INSTRUCCIONES:

1. ENTRAR A LA PAGINA SIGUIENTE:
http://sourceforge.net/project/downloading.php?groupname=dev-cpp&filename=devcpp-4.9.9.2_setup.exe&use_mirror=easynews

2. DESCARGAR LA VERSIÓN:
Dev-C++ 5.0 beta 9.2 (4.9.9.2)

3. SEGUIR LAS INSTRUCCIONES.

4. ABRIR EL ARCHIVO (SI APARECE ALGUN TEXTO AL ABRIR EL ARCHIVO, SELECCIONAR TODO Y BORRAR EL TEXTO). ¡LISTO!

PARA CORRER UN PROGRAMA SIGAN LAS SIGUIENTES INSTRUCCIONES:

1. ESCRIBIR EL CÓDIGO:

#include<>
#include<>

main()
{
printf("HOLA MUNDO");
getch();
return 0;
}


NOTEN QUE COLOQUÉ getch(); Y LA BIBLIOTECA conio.h YA QUE ESTE COMPILADOR NECESITA HACER UNA PAUSA PARA MOSTRAR RESULTADOS.

ADEMÁS QUITE LA PALABRA void Y COLOQUÉ return 0; YA QUE ESTE COMPILADOR NO RECONOCE void.
SI UTILIZAN BORLAND C++ PUEDEN USAR void O return 0; SIN NINGÚN PROBLEMA.

3. GUARDAR EL ARCHIVO.

4. COMPILAR: DANDO CLIC EN EJECUTAR>COMPILAR O CON Ctrl + F9.

5. EJECUTAR: DANDO CLIC EN EJECUTAR>EJECUTAR O CON Ctrl + F10.

* O PUDEN COMPILAR Y EJECUTAR SOLO CON F9

6. EN CASO DE ERRORES: CORREGIR, COMPILAR Y EJECUTAR DE NUEVO.

¿CÓMO COMPILAR EN LINUX?

PARA COMPILAR Y EJECUTAR DESDE "GCC" SE DEBE HACER LO SIGUIENTE:

1. Ir a la carpeta en donde esta el archivo fuente.
2. DAR Clic con el botón secundario.
3. Actions.
4. Open terminal here.
5. Teclear gcc[nombre del archivo].c
6. Teclear a.out

para utilizar gcc, suministra un nombre de archivo fuente de C y utilice la opcion -o para especificar el nombre del archivo de salida. gcc preprocesará, compilará, ensamblara y vinculará (link) el programa, generando un archivo ejecutable, a menudo denominado binario. La sintaxis más simple se ilustra aquí:

gcc archivo_entrada.c [-o archivo_salida].

El archivo_entrada.c es un archivo de código fuente en C y -o establece que el nombre del archivo de salida será archivo_salida. Los corchetes([ ])indican a los argumentos opcionales. si el nombre del archivo de salida no se espesifica, gcc lo denominara a.out como opcion predeterminada.

EJEMPLO


/*Nombre del programa: hello.c*/

/*hola.c - programa canónico "¡hola,mundo!"

*/

#incluide

int main(void)

{

puts("¡piensa en linux y seras libre!");



retur 0;

}

para compilar y correr este programa, teclee

$ gcc hola.c -o hola

si todo salio bien, gcc realizara su trabajo en silencio y luego regresa a la señal de peticion de comandos del sistema operativo. gcc compila y linkea el archivo fuente hola.c, creando el archivo que fue especificado mediante el argumento -o, osea hola.

En Linux hay unos programitas muy secillo que te permiten hacer diagrams de flujo que son VCG y Xfig

posteriormente tratare de especificar detalladamente varios ejercicios súper básicos, comenzando desde el diagrama de flujo, pseudocódigo y código.