BFLT Utils 컴파일 문제: libiberty.h가 설치되었으나 ​​찾을 수 없음

BFLT Utils 컴파일 문제: libiberty.h가 설치되었으나 ​​찾을 수 없음

BFLT Utils(https://github.com/nihilus/bflt-utils), 하지만 다음 오류가 계속 발생합니다.

$:/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

libiberty-dev을 사용하여 설치 했습니다 apt-get install libiberty-dev.find / -name libiberty.*

/usr/include/libiberty/libiberty.h

다음을 사용하여 경로를 추가하기 위해 Makefile을 수정해 보았습니다.

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)

하지만 여전히 같은 오류가 발생합니다.

왜 헤더 파일을 찾을 수 없나요?

답변1

위의 Mark의 의견은 정확합니다. 대신 CFLAGSadd를 사용해야 합니다 . 컴파일러의 플래그는 라이브러리를 찾을 수 있는 위치를 알려주지만 찾을 수는 없습니다.-I-L-L머리글문서대신에.

(예, 헤더 파일의 이름은 that libiberty.h이지만 이것이 라이브러리라는 의미는 아닙니다.)

일반적으로 -Lmakefile LDFLAGS및 관련 변수에 플래그를 사용합니다.

(나는 가지고있다이 문제를 보고했습니다프로젝트에 추가되므로 일단 수정되면 다른 사람에게 영향을 미치지 않기를 바랍니다. Torra님, 패치나 풀 요청을 제공해 주실 수도 있습니다. )

관련 정보