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