
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
上記のマークのコメントは正しいです。代わりにCFLAGS
addを使用する必要があります。コンパイラのフラグはライブラリが見つかる場所を示しますが、見つかりません。-I
-L
-L
ヘッダー文書代わりに。
(はい、ヘッダファイルの名前はthatlibiberty.h
ですが、これがライブラリという意味ではありません。)
通常、-L
makefileLDFLAGS
と関連変数にフラグを使用します。
(私は持っていますこの問題を報告しましたプロジェクトに追加されますので、修正したら他のユーザーには影響しないことを願っています。 Torraさん、パッチやプールリクエストを提供することもできます。 )