Использование библиотечных путей в makefiles

я написал файл 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  [email protected]  $(LIBRA)   

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

Я создал свою собственную статическую библиотеку и включил путь к заголовочному файлу и путь к библиотеке. Когда я выполняю свой makefile, он дает ошибку, говоря, что /usr/lib/gcc не удается найти -larith -ldekk.

он указывает на каталог lib/, но он не там:-ldekk и -larith в файле source1 и файлы файл source2 соответственно.

как решить эту ошибку?

1 ответов


вместо -L./cygdrive/c используйте -L/cygdrive/c. Точка делает путь библиотеки относительно текущего каталога, т. е. она будет искать cygdrive вложенная папка текущей папки вместо диска C.