C:.so libs和makefile

时间:2013-03-10 13:50:19

标签: c makefile libraries

我试图将.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,或者juste不知道它有什么可以找到的。

除此之外,我没有在我的.c文件中写过关于mylib的任何内容......我的意思是没有#include。可能是所有问题中的一个。

关于图书馆和文件的解释对我来说似乎很难理解......请原谅一位年轻的法国发展者的学校英语;)

1 个答案:

答案 0 :(得分:3)

mylib.so应为libmylib.so,否则链接器无法找到它。

(看看你系统上已安装的库而不是做出错误的假设怎么样?)