• C++ 把类封装成静态链接库


    目录

    一、动态链接库和静态链接库的区别

    二、对比

    1、静态链接库 (Static Library)

    2、动态链接库 (Dynamic Library)

    三、制作步骤

    1. 创建类头文件

    2. 实现类

    3. 创建静态链接库工程

    4. 构建静态链接库

    5. 使用静态链接库

    6、添加静态库和头文件路径


    一、动态链接库和静态链接库的区别

    静态链接库(Static Library)和动态链接库(Dynamic Library)是两种不同的代码复用和模块化方法。它们在构建、链接、分发和使用方面有许多重要的区别。

    二、对比

    1、静态链接库 (Static Library)

    1. 文件扩展名:在Windows中通常是.lib,在Linux中是.a
    2. 链接时间:在编译时将库代码复制到每个使用它的可执行文件中。
    3. 运行时依赖:不需要在运行时提供库文件,因为库代码已经包含在可执行文件中。
    4. 文件大小:由于每个可执行文件都包含库代码,所以生成的可执行文件较大。
    5. 版本控制:更容易控制和测试,因为库代码在编译时已经确定,不会在运行时改变。

    2、动态链接库 (Dynamic Library)

    1. 文件扩展名:在Windows中通常是.dll,在Linux中是.so
    2. 链接时间:在编译时生成对库的引用,而不复制库代码。实际的库代码在运行时加载。
    3. 运行时依赖:需要在运行时提供库文件。
    4. 文件大小:由于库代码不包含在可执行文件中,所以生成的可执行文件较小。
    5. 版本控制:库文件可以独立更新,多个可执行文件可以共享同一个库文件。

    三、制作步骤

    将一个C++类定义成静态链接库(Static Library),与动态链接库(DLL)的步骤类似,但有一些不同。

    1. 创建类头文件

    定义你要封装的类。例如,创建一个名为MyClass的类:

    1. // MyClass.h
    2. #pragma once
    3. class MyClass {
    4. public:
    5. MyClass();
    6. ~MyClass();
    7. void SayHello();
    8. };

    2. 实现类

    实现这个类的方法:

    1. // MyClass.cpp
    2. #include "MyClass.h"
    3. #include <iostream>
    4. MyClass::MyClass() {}
    5. MyClass::~MyClass() {}
    6. void MyClass::SayHello() {
    7. std::cout << "Hello from MyClass!" << std::endl;
    8. }

    3. 创建静态链接库工程

    在 Visual Studio 中创建一个新的静态链接库工程:

    1. 打开 Visual Studio,创建一个新的项目。
    2. 选择 Static Library (LIB) 项目类型。
    3. 添加 MyClass.hMyClass.cpp 文件到项目中。

    4. 构建静态链接库

    构建工程,将会生成一个 .lib 文件(例如 MyLibrary.lib)。

    5. 使用静态链接库

    要使用这个静态链接库,需要在另一个项目中导入它:

    1. // main.cpp
    2. #include
    3. #include "MyClass.h"
    4. int main() {
    5. MyClass myClass;
    6. myClass.SayHello();
    7. return 0;
    8. }

    在你的新项目中,确保以下几点:

    1. 将生成的 MyLibrary.lib 文件添加到新项目的链接器输入中。
    2. 确保 MyClass.h 头文件在新项目的包含路径中。

    6、添加静态库和头文件路径

    在新项目中配置静态库和头文件路径

    1. 右键点击新项目,选择“属性”。
    2. 在左侧面板中选择“C/C++” -> “常规”。
    3. 在“附加包含目录”中添加静态库的头文件路径。
    4. 在左侧面板中选择“链接器” -> “常规”。
    5. 在“附加库目录”中添加静态库文件的路径。
    6. 在左侧面板中选择“链接器” -> “输入”。
    7. 在“附加依赖项”中添加静态库文件名(例如 MyLibrary.lib)。
  • 相关阅读:
    吃瓜教程-模型的评估与选择
    elementUI 在移动端使用的一些问题
    流程图布局在项目中的实践
    移植MQTT源码到STM32F407开发板上
    Abbexa丨Abbexa动物组织 PCR 试剂盒提取说明书
    uniapp 之 uview 表单验证手机号,如果手机号不是必填,但是如果填了就要验证格式
    VS Code 调试Js代码,无法命中断点
    Go语言 Map教程
    【C++】模板初阶
    Java-比较器Comparable与Comparator(详解)
  • 原文地址:https://blog.csdn.net/cangqiongxiaoye/article/details/140111922