gpt4 book ai didi

c - 包括静态库和头文件Makefile问题(C)

转载 作者:行者123 更新时间:2023-11-30 17:38:30 25 4
gpt4 key购买 nike

我的文件堆叠如下

dir1/
mylib.a
myheader.h
file.c
executable
dir2/
dependentfile.c // depends on functions in myheader.h implemented in mylib.a

我想在 Makefile 中链接静态库文件,而不使用其名称,而仅指示其路径。我所拥有的如下:

dir2/的 Makefile

CC = gcc
CFLAGS = -g -Wall $(INCLUDES)
INCLUDES = -I../dir1
LDFLAGS = -g -L../dir1

exec: dependentfile.o

dependentfile.o: dependentfile.c

运行“make”只会给我带来一堆隐式声明错误和 undefined reference ,因为它没有在我用 -L 和 -I 指定的路径中查找。我的 dependentfile.c 也有这一行

#include "myheader.h"

它找不到。

我应该如何修改 makefile 才能使其工作?我尝试了多种方法,甚至用 -l 指定 lib 文件并写入完整路径都无济于事。

感谢任何帮助!

#

编辑:弄清楚了!

结果我忘记了 LDLIBS。所以对于其他人来说,makefile 最终看起来像这样:

CC = gcc
CFLAGS = -g -Wall $(INCLUDES)
INCLUDES = -I../dir1
LDFLAGS = -g -L../dir1
LDLIBS = -lmylib (my actual file was named libmylib.a, forgo the "lib")

exec: dependentfile.o

dependentfile.o: dependentfile.c

最佳答案

我认为你应该使用

#include "myheader.h"

你的头文件名应该被引用。

关于c - 包括静态库和头文件Makefile问题(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com