[备份使用]Makefile编写动态链接库和静态链接库demo

来源:互联网 发布:网络机房的重要性 编辑:程序博客网 时间:2024/06/14 19:12

相应的.c及点.h文件如下:

c.c

#include "cplus.hpp"#include "c.h"A *a = new B();void test(){//A *a = new B();a->test();}

cplus.cpp

#include <iostream>#include <string>#include "cplus.hpp"using namespace std;void A::test(){cout<<"a"<<endl;}void B::test(){cout<<"b"<<endl;}


c.h

#ifndef _C_H_#define _C_H_#ifdef __cplusplusextern "C"{#endifvoid test();#ifdef __cplusplus}#endif#endif


cplus.hpp

class A{public:virtual void test();};class B:public A{public:void test();};


生成动态链接库的Makefile如下

CXX=g++CXXFLAGS= -c#INCLUDE=#LIB=#SUBLIB=TARGET_NAME=libc_test.so$(TARGET_NAME):c.o cplus.o$(CXX) -fPIC -shared -o $@ $^c.o:c.c c.h cplus.hpp$(CXX) -fPIC -c $^cplus.o:cplus.cpp cplus.hpp$(CXX) -fPIC -c $^clean:rm *.orm *.gchrm $(TARGET_NAME)


生成静态链接库的Makefile如下

CXX=g++CXXFLAGS= -c#INCLUDE=#LIB=#SUBLIB=AR = ar -rTARGET_NAME=libc_test.a$(TARGET_NAME):c.o cplus.o$(AR) $@ $^c.o:c.c c.h cplus.hpp$(CXX) -c $^cplus.o:cplus.cpp cplus.hpp$(CXX) -c $^clean:rm *.orm *.gchrm $(TARGET_NAME)




阅读全文
0 0
原创粉丝点击