在 makefile 中使用库路径

发布于 2024-11-16 13:37:41 字数 538 浏览 2 评论 0原文

我写了一个像这样的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 文件中。

如何解决这个错误?

I have written a makefile like this:

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)  
lt;  -o  $@  $(LIBRA)   

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

I have created my own static library and included the header file path and library path. When I execute my makefile it gives an error saying that
/usr/lib/gcc cannot find -larith -ldekk.

It is pointing to the lib/ directory but it is not over there: -ldekk and -larith are in source1 and source2 files respectively.

How to solve this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹤仙姿 2024-11-23 13:37:41

使用 -L/cygdrive/c,而不是 -L./cygdrive/c。点使库路径相对于当前目录,即它将查找当前文件夹的 cygdrive 子文件夹而不是驱动器 C。

Instead of -L./cygdrive/c, use -L/cygdrive/c. The dot makes the library path relative from the current directory, i.e. it will look for a cygdrive subfolder of the current folder instead of drive C.

極樂鬼 2024-11-23 13:37:41

我修改后的 Makefile 库行是:

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

这解决了截至 2019 年 12 月 30 日运行最新 Raspbain 的 Raspberry Pi 4 中的问题

My revised Makefile libraries line is:

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

This solved the issue in a Raspberry Pi 4 running the latest Raspbain as of Dec 30, 2019

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文