2012-08-29 22 views
13

Estoy tratando de vincular la biblioteca cspec en mi proyecto C. Este es mi Makefile ubicado en la carpeta pruebas:¿Por qué no puedo encontrar gcc mi biblioteca estática?

all: test 

test: sample.o 
    gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 

sample.o: sample.c 
    gcc -Wall -c sample.c -I../lib/cspec 

clean: 
    rm -rf *o test 

Mi directorio es:

/ 
/src 
/lib 
/lib/cspec 
/tests 

Cuando ejecuto make recibo el siguiente error:

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 
/usr/bin/ld: cannot find -llibcspec.a 

he asegurado de que el archivo libcspec.a se encuentra en la carpeta lib/cspec, pero para asegurarse de que también he intentado colocarlo dentro de la carpeta de pruebas y eliminar el comando -L, en vano.

+0

intente eliminar el espacio después de '-L'. – jmkeyes

+1

@Joshua K: no - espacio en blanco después de '-L' es opcional y no hace diferencia. Lo mismo para '-I'. –

Respuesta

26

Cambio:

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a 

a:

gcc -Wall -o test sample.o -L ../lib/cspec -lcspec 

(Por convención, gcc y otros compiladores * nix añadir automáticamente el lib prefijo y el sufijo apropiado.)

+2

¡Espera, eso funcionó (editado)! ¡Gracias! – sdasdadas

Cuestiones relacionadas