Ayuda a modificar un make y a utilizar lib graficas

Hola buenas quisiera pedir ayuda para compilar un programa, pero no un programa que me he descargado sino uno que he hecho yo. Os explico, la "aplicación" se divide en varios archivos, los cuales son: pascal.cpp(programa principal), triangulo.h (fichero de cabeceras),triangulo.cpp(implementación de las funciones triangulo.h ), libtriangulo.a (libreria creada a partir de triangulo.cpp) y makefile.
Además tengo estos archivos distribuidos en diferentes directorios,src,bin,include, lib,obj. Mi fichero makefile es así:
[
OBJ = obj
SRC = src
INCLUDE = include
LIB = lib
BIN = bin
pascal: pascal.o libtriangulo.a
g++ -o $(BIN)/pascal $(OBJ)/pascal.o $(LIB)/libtriangulo.a
@echo Construido el ejecutable ...
pascal.o:pascal.cpp
g++ -c -o $(OBJ)/pascal.o $(SRC)/pascal.cpp
libtriangulo.a: triangulo.o
ar -rvs $(LIB)/libtriangulo.a $(OBJ)/triangulo.o
@echo Construida la libreria ...
triangulo.o: triangulo.cpp
g++ -c -o $(OBJ)/triangulo.o $(SRC)/triangulo.cpp -I$(INCLUDE)
@echo Construido fichero objeto triangulo.o ...


Al ejecutarlo en la termina obtengo este error:
make: *** No hay ninguna regla para construir el objetivo `pascal.cpp', necesario para `pascal.o'. Alto.

Bueno esto es algo que me gustaría solucinar, porque el programa me compila bien si modifico el makefile y los archivos los cuelgo de un mismo directorio.

Aparte de esto y lo que no se como hacer es, que debo de utilizar una libreria libgraficos.a que me a proporcionado el profesor y su fichero de cabecera graficos.h, para hacer una posible solución del programa principal con librerías gráficas. La cuestión es que no se como puedo compilar el programa para añadir esta libería que a su vez depende de libSDL.a, libSDL_gfx.a, libSDL_ttf.a y libfreetype.a. Utilizando ademas un espacio de nombres particular. Mi programa principal es este;
[
#include
#include "triangulo.h"
#include "graficos.h"
using namespace std;
using namespace graficos;

void unos(Triangulo &tri);
void rellenar(Triangulo &tri);
void espacios(const int n);
void dibujar(const Triangulo &tri);

int main(){
int num_filas,z,y,cont=0;
Triangulo tri;
filas *fil;
datos *dat;
bool band;
Inicializar(tri);
do{
cout<<"Introduzca el numero de filas que desea que contenga el triangulo de pascal:";
cin>>num_filas;
}while(num_filas<=0);
while(cont NuevaFila(tri);
cont++;
}
rellenar(tri);
//dibujar(tri);
CrearVentana(800,600,"Ejemplo Dibujo");

}

void unos(Triangulo &tri){
for(int i=1;i<=NumeroFilas(tri);i++)
SetElemento(tri,i,1,1);
for(int i=1;i<=NumeroFilas(tri);i++)
SetElemento(tri,i,i,1);
}

void rellenar(Triangulo &tri){
int cont=2;
unos(tri);
for(int i=3;i<=NumeroFilas(tri);i++){
while(cont SetElemento(tri,i,cont,GetElemento(tri,i-1,cont-1)+GetElemento(tri,i-1,cont));
cont++;
}
cont=2;
}
}

void espacios(const int n){
for(int i=0;i cout<<" ";
}

void dibujar(const Triangulo &tri){
int filas=1,columnas=1,aux=0,aux2=1;
bool band=true;
while(filas<=NumeroFilas(tri)){
espacios(NumeroFilas(tri)- NumeroColumnas(tri,filas));
while(columnas<=(NumeroColumnas(tri,filas)+aux) && filas<=NumeroFilas(tri)){
if(band==true){
cout< aux2++;
columnas++;
band=false;
}

else{
cout<<" ";
band=true;
columnas++;

}
}
aux2=1;
filas++;
band=true;
columnas=1;
aux++;
cout< }
}
0 respuestas