C++进阶:动态库与静态库——类篇

文章目录

  • 0. 先创建几个文件
  • 1. 静态库的制作与使用
  • 2. 共享库(动态库)
  • 3. 动态加载库

静态库和动态库的创建和使用和上一篇文章(函数篇)相似,详细内容可以在那里看

0. 先创建几个文件

simple.h 文件内容:

#include 
#include "simple.h"
using namespace std;

Simple::Simple(){
    cout << "Simple()" << endl;}
Simple::~Simple(){
    cout << "~Simple()" << endl;}
void Simple::Test() const {
    cout << "Test()" << endl;}

simple.cpp 文件内容:

#pragma once

class Simple/*: public ISimple*/{
   
public:
        Simple();
        ~Simple();
        void Test() const /*override*/;
};

simpletest.cpp 文件内容:

#include "simple.h"

int main(){
   
        Simple s;
        s.Test();

        Simple* p = new Simple;
        p->Test();
        delete p;
        p = nullptr;
}

1. 静态库的制作与使用

创建:
把文件编译后生成 .o 文件,编译文件,使用命令 g++ -c test.cpp
通常,生成静态库,我们使用命令 ar -rcs libtest.a test.o

使用:
通常,使用静态库,用命令 g++ main.cpp -L. -ltest

也可以使用命令 g++ main.cpp ./libtest.a

实验:

[root@foundation1 C++7.4]# g++ -c simple.cpp 
[root@foundation1 C++7.4]# ar -rcs libsimple.a simple.o 
[root@foundation1 C++7.4]# nm libsimple.a 

simple.o:
                 U __cxa_atexit
                 U __dso_handle
00000000000000c1 t _GLOBAL__sub_I__ZN6SimpleC2Ev
                 U __gxx_personality_v0
0000000000000083 t _Z41__static_initialization_and_destruction

你可能感兴趣的:(C++,c++)