web-dev-qa-db-ja.com

makefileでのライブラリパスの使用

私はこのようなメイクファイルを書きました:

HEADER = -I./cygdrive/c/cpros/kajj/source4
LIBB = -L./cygdrive/c/cpros/kajj/source1   -L./cygdrive/c/cpros/kajj/source2
LIBRA = -larith -ldekk

target : game.o 
    gcc $(HEADER)   $(LIBB)  $<  -o  $@  $(LIBRA)   

game.o : game.c 
    gcc -c  game.c

独自の静的ライブラリを作成し、ヘッダーファイルパスとライブラリパスをインクルードしました。 makefileを実行すると、/usr/lib/gcc-larith -ldekkを見つけることができないというエラーが表示されます。

これはlib /ディレクトリを指していますが、そこにはありません。-ldekk-larithはそれぞれsource1ファイルとsource2ファイルにあります。

このエラーを解決する方法は?

8
karthik

の代わりに -L./cygdrive/c、 使用する -L/cygdrive/c。ドットは、ライブラリパスを現在のディレクトリから相対パスにします。つまり、ドライブCではなく現在のフォルダのcygdriveサブフォルダを検索します。

11
Tamás

私の改訂されたMakefileライブラリの行は次のとおりです。

LIBS=-L/usr/lib/arm-linux-gnueabihf -lrtlsdr -lpthread -lm

これにより、2019年12月30日時点で最新のRaspbainを実行しているRaspberry Pi4の問題が解決されました

0
Bill Hatch