我正在尝试将 .so 库添加到我的项目中,但我对 makefile 的了解非常有限,不幸的是我不明白我能找到的教程......
这是我的项目的结构:
/project
ex1.c
ex1.h
ex1_client.c
ex1_client.h
/lib
libmylib.so
我需要在 ex1 和 ex1_client 这两个可执行文件中使用 mylib,但我没有成功将它包含在 makefile 中(而且我想我可能不知道如何将它包含在我的 .c 文件中......)
我的makefile是:
CC= gcc
CFLAGS= -Wall -pedantic -std=c99 -pthread
RM= rm -f
LFLAGS= -L./lib
LIBS= -lmylib
#Don't know if the following is necessary
LD_LIBRARY_PATH= ./lib
all: ex1 ex1_client
ex1: ex1.o
$(CC) $(CFLAGS) -o ex1 ex1.o $(LFLAGS) $(LIBS)
ex1_client: ex1_client.o
$(CC) $(CFLAGS) -o ex1_client ex1_client.o $(LFLAGS) $(LIBS)
ex1.o: ex1.c ex1.h
$(CC) $(CFLAGS) -c ex1.c ex1.h
ex1_client.o: ex1_client.c ex1_client.h
$(CC) $(CFLAGS) -c ex1_client.c ex1_client.h
clean:
$(RM) *.o ex1 ex1_client *~
它不起作用 - 似乎不知道在哪里可以找到 mylib,或者只是不知道它有什么要找的。
除此之外,我没有在我的 .c 文件中写任何关于 mylib 的内容……我的意思是没有#include。可能是所有问题之一。
关于图书馆和makefile的解释对我来说似乎真的很难理解......请原谅一个年轻的法国开发者在学校学习的英语;)