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

本文介绍了C++中如何创建和使用静态库与动态库,包括静态库的制作与使用、共享库(动态库)的创建及动态加载库的方法。通过实例展示了编译命令和使用技巧,特别强调了类在动态库中的应用和多态性特点。
摘要由CSDN通过智能技术生成

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

0. 先创建几个文件

simple.h 文件内容:

#include <iostream>
#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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值