Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/06/2012, 01:01
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: Hacer un juego en C++ [Librerías] [?]

La ubicación de los archivos de cabecera depende de cada compilador y/o entorno de desarrollo. Por lo general, los correspondientes a las librerías estandar del compilador, por ejemplo stdio.h, stdlib.h ó math.h casi siempre están en una carpeta llamada include dentro de la carpeta de instalación del compilador. Cuando pones, por ejemplo

#include <stdio.h>

estás indicando que el archivo de cabecera stdio.h está en la carpeta por defecto (la carpeta include de tu compilador).

Ahora bien, cuando pones

#include "mi_libreria.h"

el compilador ya sabe que no es estandar, y el tema de dónde debe estar depende del compilador y/o del entorno de desarrollo que utilices. Por lo general:

Si compilas mediante linea de comando, mi_libreria.h deberá estar en la misma carpeta que el resto de archivos que compongan el código fuente. De no ser así, tendrás que indicar la ruta (bien absoluta, desde la raíz, o bien relativa, desde la carpeta de trabajo) para llegar al arhcivo.

Si utilizas un entorno de desarrollo, ya depende de cada entorno. Normalmente, al añadir los archivos al proyecto, te cogerá la ruta correcta. Además, algunos entornos te permitirán indicar carpetas adicionales en las que buscar si no encuentra los archivos en la carpeta de trabajo.

En cualquier caso, cuando hagas una pregunta, conviene que indiques cuál es el sistema operativo que utilizas, y si se trata de programación, el compilador y/o entorno de desarrollo.

Sobre tu última pregunta, la respuesta es NO. Un programa, después de compilado, queda como una serie de llamadas a funciones del sistema operativo (por ejemplo, para presentar cosas en pantalla, para leer del teclado, para controlar el ratón, para enviar un documento a una impresora, o para leer/escribir datos en una unidad de almacenamiento). El cómo están hechas estas funciones, cómo funcionan y cómo llamarlas depende de cada SO, por eso un ejecutable hecho para un SO no servirá en otro SO distinto.