zoukankan      html  css  js  c++  java
  • 4 动态库和静态库

    4.1 静态库

    • 创建
      • 工程属性配置中设置为lib静态库,编辑.h文件和.c文件,生成即可。
    • 使用
      • 方法一:
        • 添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。
        • 添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。
        • 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。
      • 方法二:
        • #pragma comment(lib,"./mylib.lib")
      • 方法三:
        • 像添加 .h 和 .c 文件一样,把lib文件添加到工程文件列表中去。
        • 切换到”解决方案视图“,--->选中要添加lib的工程-->点击右键-->"添加"-->"现有项"-->选择lib文件-->确定。

    4.2 动态库

    • 创建

      • 工程属性配置中设置为dll静态库,编辑 .h 文件和 .c 文件;

        头文件中声明为__declspec(dllexport) 函数声明;

        ​ 例:__declspec(dllexport) int MyNum(int a, int b)

    • 使用

      • 方法一:

        #pragma comment(lib,"./mydll.lib")

      • 方法二:

        HANDLE hDll;

        hDll = LoadLibrary("mydll.dll");

    4.3 优缺点

    • 静态库优缺点:
      • 静态库对函数库的链接是放在编译时期完成的,静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;
      • 程序在运行时与函数库再无瓜葛,移植方便。
      • 浪费空间和资源,所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。
  • 相关阅读:
    QT之QRect函数QRect::adjust()函数
    QT 正则表达式(进阶篇)IP,端口号,文件名,非空格字符的匹配,已验证
    QT 正则表达式(基础篇)
    处理不平衡数据的策略
    记录一下ssh,nfs安装步骤
    用户偏好的回归预测推荐
    SVD++分解
    BiasLFM分解
    WALS分解
    ALS分解
  • 原文地址:https://www.cnblogs.com/chungeyuan/p/11410260.html
Copyright © 2011-2022 走看看