目录
静态链接库(Static Library)和动态链接库(Dynamic Library)是两种不同的代码复用和模块化方法。它们在构建、链接、分发和使用方面有许多重要的区别。
.lib,在Linux中是.a。.dll,在Linux中是.so。将一个C++类定义成静态链接库(Static Library),与动态链接库(DLL)的步骤类似,但有一些不同。
定义你要封装的类。例如,创建一个名为MyClass的类:
- // MyClass.h
- #pragma once
-
- class MyClass {
- public:
- MyClass();
- ~MyClass();
- void SayHello();
- };
实现这个类的方法:
- // MyClass.cpp
- #include "MyClass.h"
- #include <iostream>
-
- MyClass::MyClass() {}
-
- MyClass::~MyClass() {}
-
- void MyClass::SayHello() {
- std::cout << "Hello from MyClass!" << std::endl;
- }
在 Visual Studio 中创建一个新的静态链接库工程:
Static Library (LIB) 项目类型。MyClass.h 和 MyClass.cpp 文件到项目中。构建工程,将会生成一个 .lib 文件(例如 MyLibrary.lib)。
要使用这个静态链接库,需要在另一个项目中导入它:
- // main.cpp
- #include
- #include "MyClass.h"
-
- int main() {
- MyClass myClass;
- myClass.SayHello();
- return 0;
- }
在你的新项目中,确保以下几点:
MyLibrary.lib 文件添加到新项目的链接器输入中。MyClass.h 头文件在新项目的包含路径中。在新项目中配置静态库和头文件路径:
MyLibrary.lib)。