【发布时间】:2020-08-30 17:25:06
【问题描述】:
我不知道如何在 Makefile 中链接静态库。我使用 ubuntu 20.04 LTS。我什至尝试使用这些库的直接路径,但问题仍然没有改变。这是我的 Makefile 代码。
LIB = libgeoms.a
SRC = mlx_pxl_put.c \
std_arc.c \
std_crcl.c \
std_line.c \
std_poly.c \
std_rect.c \
CC = clang
WARNS = -Wall -Wextra -Werror
OBJ = $(SRC:.c=.o)
SRCP = /usr/local/wealdboar/src/
INCLUDEP = /usr/local/wealdboar/include/
LIBP = /usr/local/wealdboar/lib/
HEADER = geoms.h
LX11P = /usr/lib/x86_64-linux-gnu/libX11.a
LXEXTP = /usr/lib/x86_64-linux-gnu/libXext.a
LMLX = /usr/local/lib/libmlx.a
$(LIB): $(OBJ)
@echo "Every funtion is compile proved ..."
@ar rcs $(LIB) $(OBJ)
@echo "All functions added to static lib ..."
$(OBJ): %.o :%.c
@echo "check $< to be right"
@$(CC) $(WARNS) -c $(LX11P) $(LMLX) $(LXEXTP) $< -o $@
all: $(LIB)
clean:
@echo "removing all binaries ..."
@rm -rf $(OBJ)
fclean: clean
@echo "removing static library ..."
@rm -rf $(LIB)
re: fclean all
install: re clean
@echo "coping $(LIB) to $(LIBP)"
@sudo cp $(LIB) $(LIBP)
@echo "coping sources to $(SRCP)"
@sudo cp $(SRC) $(SRCP)
@echo "coping header to $(INCLUDEP)"
@sudo cp $(HEADER) $(INCLUDEP)
【问题讨论】:
-
什么是“问题”?你还没有向我们展示发生了什么,你得到了什么错误,什么不起作用等等。但是,我会说库链接到 executables 并且你试图将它们链接到目标文件,不能工作。
-
错误在“问题图像”中。我无法构建静态库 libgeoms.a,因为出现错误:'clang: error: -l
: 'linker' input used [-Werror, -Wunused-command-line-argument]'