Linux之静态库

    xiaoxiao2021-03-25  68

    Linux静态库命名规则

    Linux静态库命名规范,必须是"lib[your_library_name].a"lib为前缀,中间是静态库名,扩展名为.a

    创建静态库(.a

    通过上面的流程可以知道,Linux创建静态库过程如下:

    l  首先,将代码文件编译成目标文件.oStaticMath.o

    g++ -c StaticMath.cpp

    注意带参数-c,否则直接编译为可执行文件

    l  然后,通过ar工具将目标文件打包成.a静态库文件

    ar -crv libstaticmath.a StaticMath.o

    生成静态库libstaticmath.a

    大一点的项目会编写makefile文件(CMake等等工程管理工具)来生成静态库,输入多个命令太麻烦了。

    使用静态库

    编写使用上面创建的静态库的测试代码:

    测试代码:

    #include "StaticMath.h"

    #include

    using namespace std;

     

    int main(int argc, char* argv[])

    {

        double a = 10;

        double b = 2;

     

        cout << "a + b = " << StaticMath::add(a, b) << endl;

        cout << "a - b = " << StaticMath::sub(a, b) << endl;

        cout << "a * b = " << StaticMath::mul(a, b) << endl;

        cout << "a / b = " << StaticMath::div(a, b) << endl;

     

        StaticMath sm;

        sm.print();

     

        system("pause");

        return 0;

    }

    Linux下使用静态库,只需要在编译的时候,指定静态库的搜索路径(-L选项)、指定静态库名(不需要lib前缀和.a后缀,-l选项)。

    # g++ TestStaticLibrary.cpp -L../StaticLibrary -lstaticmath

    l  -L:表示要连接的库所在目录

    l  -l:指定链接时需要的动态库,编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.a.so来确定库的名称。

    本文转自:http://www.cnblogs.com/skynet/p/3372855.html

    转载请注明原文地址: https://ju.6miu.com/read-34956.html

    最新回复(0)