Problemas para compilar o BFLT Utils: não é possível encontrar o libiberty.h, apesar de estar instalado

0

Estou tentando compilar o BFLT Utils ( link ), mas recebo o seguinte erro:

$:/tmp/bflt-utils/flthdr# make
gcc -Wall -g -O2 compress.c -c
gcc -Wall -g -O2 stubs.c -c
gcc -Wall -g -O2 flthdr.c -c
flthdr.c:22:23: fatal error: libiberty.h: No such file or directory
     #include <libiberty.h>
                           ^
compilation terminated.
Makefile:16: recipe for target 'flthdr.o' failed
make: *** [flthdr.o] Error 1

Eu instalei libiberty-dev usando apt-get install libiberty-dev . E usando find / -name libiberty.* yields:

/usr/include/libiberty/libiberty.h

Eu tentei modificar o Makefile para adicionar o caminho usando:

CC=gcc
CFLAGS=-Wall -g -O2 -L/usr/include/libiberty
LDFLAGS=-lz -lc -lbfd -liberty
TARGET=flthdr

$(TARGET): compress.o stubs.o flthdr.o
    $(CC) $(CFLAGS) -o $(TARGET) *.o $(LDFLAGS)

compress.o:
    $(CC) $(CFLAGS) compress.c -c

stubs.o:
    $(CC) $(CFLAGS) stubs.c -c

flthdr.o:
    $(CC) $(CFLAGS) flthdr.c -c

clean:
    rm -f *.o $(TARGET)

Mas ainda recebo o mesmo erro.

Por que o arquivo de cabeçalho não está sendo encontrado?

    
por Torra 21.08.2015 / 17:40

1 resposta

1

O comentário de Mark acima está correto: sua adição CFLAGS deve usar -I , não -L . O sinal -L para o compilador informa onde encontrar bibliotecas, mas você não está conseguindo encontrar um cabeçalho arquivo em vez disso.

(Sim, o arquivo de cabeçalho é chamado libiberty.h , mas isso não faz dele uma biblioteca.)

Geralmente você usa -L flags em makefiles em LDFLAGS e variáveis relacionadas.

(Eu relatei essa questão para o projeto, por isso espero que ela não morda ninguém outra vez, uma vez corrigido.Talvez você forneça uma solicitação de patch ou pull, Torra.)

    
por 21.08.2015 / 19:06