首页 > 解决方案 > 如何在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++makefileincludeshared-librariesdynamic-library

解决方案


推荐阅读