c++ - 如何在makefile C++中使用共享库
问题描述
我对makefile非常陌生,我找不到任何关于库的清晰教程,因此我的问题更多是关于概念而不是代码。
我有两个 c++ 文件和 5 个头文件。我想制作一个创建动态(共享)库的makefile,这样我就可以在测试文件中使用它并且它位于当前目录中。共享库 .so 已创建但以这种方式传递它是程序读取的正确方式吗?并且没有(.cc)相关文件的头文件是否也应该包含在makefile和库中?最后: .so 文件是否应该包含在测试文件中,#include <mylib.so>
或者正在运行的 makefile 会自动连接它吗?
这是我的代码:
CFLAGS = -Wall -g
CC = g++
all: Class1.o main.o mylib.so
$(CC) Class1.o main.o mylib.so -o myProg
mylib.so : Class1.o.o main.o
$(CC) $(CFLAGS) -shared -fPIC -o mylib.so Class1.o main.o
Class1.o: Class1.cc Class1.h
$(CC) $(CFLAGS) -c Class1.cc
main.o: main.cc
$(CC) $(CFLAGS) -c main.cc -L. -lmylib
提前致谢
解决方案
推荐阅读
- c++ - 如何为 gcc 中未使用的 lambda 表达式启用警告?
- java - 有没有办法遍历对象列表,然后根据每个对象的枚举值返回一个值
- pdf - ! 在 RStudio 中使用 rmarkdown 将文件编织为 PDF 时尺寸太大
- python - 通过第三个值绘制线条颜色并添加颜色条
- python - Django - models.py models.E006 将参数传递给函数
- hyperledger-fabric - 如果 Hyperledger Fabric 对等方已过期,如何重新注册管理员证书
- html - 根据 Angular 中的条件显示清晰度单选按钮
- python - Retinex 实现 python
- javascript - onClick 带参数的匿名函数 vs onClick(function(arguments))
- python - 正则表达式检索字符串之前的所有文本,直到空格