c++ - 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
解决方案
该选项-L
指定库的附加搜索目录。-l
寻找附加库。利用:
LIBS = -L .. -l Ml
推荐阅读
- excel - 如何检查空值或行具有全零值或具有多个值
- java - 如果我在 Spring boot 中使用多个方法映射,如何仅从 swagger ui 文档中隐藏一个映射
- reactjs - 两个组件之间的路由
- json - jq - select objects and print null for missing
- python-3.x - 使用 tf_agents.environments.TFPyEnvironment 将 Python RL 环境转换为 TF 环境时会发生哪些变化?
- sql - 如何计算 2 列
- python - keras Tensorflow中InputLayer的输入形状是什么?
- python - 一次减去多列
- assembly - 我如何使用指令来确定是否执行 MSB
- laravel - Laravel Passport - 中间件身份验证无法验证访问令牌,始终返回未经身份验证