首页 > 解决方案 > Makefile 找不到共享库

问题描述

我有这个文件夹结构:

Project_folder
Project_folder/Ml.app (folder)
Project_folder/Ml.lib (folder)

在 Ml.lib 文件夹中,我创建了一个名为 ml.so 的共享库,现在我想链接到 Ml.app 文件夹中的客户端应用程序。这是我的生成文件:

LIBS = -L ../Ml.lib -l ml
INCLUDES = ../Ml.lib
CXXLAGS = -Wall -I$(INCLUDES)
OBJFILES = main.o
TARGET   = mltest
all: $(TARGET)
$(TARGET): $(OBJFILES)
        $(CXX) $(CXXLAGS) -o $(TARGET) $(OBJFILES) $(LIBS) $(LDFLAGS)
        
clean:
        rm -f $(OBJFILES) $(TARGET) *~

但是当我尝试构建它时,我得到了

g++ -Wall -I../Ml.lib -o mltest main.o -L ../Ml.lib -l ml /usr/bin/ld:找不到 -lml collect2:错误:ld 返回 1 个退出状态 make: *** [Makefile:8: mltest] 错误 1

标签: c++makefileshared-libraries

解决方案


该选项-L指定库的附加搜索目录。-l寻找附加库。利用:

LIBS = -L .. -l Ml

推荐阅读