2011-05-11 54 views
5

Estoy intentando compilar un programa con varios archivos fuente: dos archivos CPP y un archivo de encabezado, con code :: blocks. A modo de ejemplo, he creado los siguientes tres archivos (un programa de ejemplo creado por otra persona en otro foro):Código :: Bloques: cómo compilar varios archivos fuente

main.cpp:

#include <stdio.h> 
#include "other.h" 

int main (void) 
{ 
    printf("%d\n", getfavoritenumber()); 

    return 0; 
} 

other.cpp

#include "other.h" 

int getfavoritenumber(void) 
{ 
    return 3; 
} 

otra .h

#ifndef _OTHER_H_ 
#define _OTHER_H_ 

int getfavoritenumber(void); 

#endif 

A pesar de que estos tres archivos debe vínculo entre sí, recibo el error "Vinculación de etapa omitida (el objetivo de compilación no tiene archivos de objeto para vincular)" cuando intento compilar el proyecto.

¿Qué estoy haciendo mal? Intentar compilar los archivos individuales presenta el error "Ese archivo no está asignado a ningún objetivo".

+1

¿Qué tipo de proyecto seleccionó? Debería seleccionar "aplicación de consola". – jonsca

Respuesta

1

Hice esto:

  • que creó un proyecto consola en Código :: Blocks

  • para cada archivo que hice File|New para crear un archivo vacío, añadido a la proyecto con los nombres que ha especificado y pegado el código correspondiente de su pregunta en cada archivo.

  • Compiló y ejecutó el ejecutable resultante.

Todo funcionó como se esperaba. Si no funciona para usted, describa cómo está creando el proyecto. Code :: Blocks absolutamente necesita un proyecto; no funciona bien con archivos individuales. Si quieres eso, usa GCC desde la línea de comando.

Editar:

  • Es generalmente una buena idea instalar el compilador separado de CB, que es en realidad sólo un IDE. Estoy asumiendo que estamos en Windows aquí. Vaya a http://tdm-gcc.tdragon.net y descargue el último compilador de GCC desde allí. Verifica que funcione desde la línea de comando.

  • Luego en CB vaya a Settings|Compiler and Debugger y seleccione la pestaña Toolchains executables. Luego navegue hasta la raíz del directorio donde instaló las cosas de TDM GCC (el directorio raíz, no el directorio bin en la raíz), y todo debería estar bien.

Y si al final del día esto no funciona, pruebe los foros de soporte de CB en http://forums.codeblocks.org.

+0

Estoy creando el proyecto exactamente como se describe. También he intentado la sugerencia de jonsca de utilizar el tipo de proyecto 'Aplicación de consola'. Estoy usando el compilador predeterminado: el compilador GNU GCC. Este podría ser el problema: hay varios compiladores para elegir. ¿Cómo sé si están instalados correctamente? (Supongo que el compilador predeterminado está incluido con la instalación de code :: blocks - Descargué el programa hace solo unos días y elegí el que viene con el compilador mingGW - pero este compilador no está en la lista. Sospecho que mi problema podría estar aquí? – Matt

+0

@Matt Ver mi edición –

1

Tuve un problema similar al crear mi primer proyecto de código fuente múltiple. Creo que el problema que está teniendo no está en el enlace, sino en su declaración de #include, el directorio era diferente de lo que esperaba. para incluir el archivo de encabezado en un proyecto que tuve que escribir #include "include/other.h", eche un vistazo a cómo se construye su sistema de carpetas ....si pudieras publicar las carpetas/directorios que tienes en el proyecto, podría darte una mejor respuesta.

2

Tuve un problema similar y descubrí que si cerraba el proyecto, creaba una nueva aplicación de consola en blanco y luego importaba los archivos existentes, las cosas comenzaban a compilarse bien.

+1

¿Esto no te hace sentir Code :: blocks es una mierda? –

15

Esto es lo que funcionó para mí:

Ir al panel de la izquierda que dice proyectos, y haga clic derecho en el archivo .cpp. Seleccione propiedades, luego vaya a compilar. Marque las casillas debajo del encabezado Pertenece a los destinos: "Depurar" y "Liberar"

+0

¡Esto resolvió mi problema! ¡Gracias! – Mitro

0

Asegúrese de que todos los archivos (.h y .cpp) se hayan agregado al proyecto con Proyecto> Agregar archivos ... o Proyecto> Agregar archivos Recursivamente ...

Cuestiones relacionadas