静态库是在编译时跟目标文件一起被编译的。

DEV-C++:

首先,新建工程,选择Static Library,工程名称设为Myfunc

新建一个名为func.h的头文件,代码如下

#ifndef _define
#define _define
namespace hehe
{
    int foo(int x,int y);
    template <typename T>
        T foo1(T x,T y);
    //模板定义是不产生代码的,只有在实例化的时候才会产生代码
    //所以,使用了模板的函数必须放在头文件中,因为模板需要在编译时推导
    template <typename T>
    T foo1(T x,T y)
    {
        return x+y;
    }
}
#endif

再新建一个func.cpp文件,添加如下代码

#include "func.h"
namespace hehe
{
    int foo(int x,int y)
    {
        int z=1;
        for(int i=0;i<y;i++)
            z*=x;
        return z;
    }
}

编译工程,会在工程目录里生成一个Myfunc.a文件

新建一个工程,在工程->工程属性-参数中点击加入库或者对象,添加刚才生成的Myfunc.a

在工程中包含func.h

#include “func.h”     也可以把func.h放到DEV-C++的include目录里,用#include <func.h>引用

然后在主函数里就可以调用自定义的函数了

cout <<hehe::foo(4,6);

cout <<hehe::foo1(4,6);

cout <<hehe::foo1(4.0,6.0);

Visual C++:

新建一个Win32 Static Library 工程,工程名为Myfunc

在弹出的步骤1窗口中,可以选择使用预编译的头文件或不选,这里不选择

新建一个func.h,代码同上;新建一个func.cpp代码同上

编译并建立 在debug目录里会生成一个Myfunc.lib文件,把该文件移到\Microsoft Visual Studio\VC98\Lib目录里

把func.h移到\Microsoft Visual Studio\VC98\Include目录里

新建一个工程,在工程设置-->连接-->对象/库模块中增加Myfunc.lib 空格隔开

#include<func.h>或#include “func.h” 包含该头文件后就可以使用自定义的函数了

转载于:https://www.cnblogs.com/mx113/articles/1609856.html

【原创】C++关于创建和使用静态链接库相关推荐

  1. Qt:55---QT创建和使用静态链接库(.lib、.a)

    一.QT的静态链接库 QT创建一个静态链接库项目,设计各种需要导出的类,包括具有UI的窗体类.对话框类.编译后可以生成一个lib文件(MSVC编译器生成的文件后缀为".lib",M ...

  2. 使用Visual studio中创建C++的静态链接库.lib文件附使用方式

    如何在Qt中使用静态库.lib(和VS一样,仅仅是操作方式略有差异) 如何在VS中创建.dll动态链接库.dll中函数与类的导出用__declspec(dllexport) 如何在Qt和VS中使用动态 ...

  3. 创建和使用静态链接库

    演练:创建和使用静态库 在本演练中,您将创建一个静态库 (LIB),其中包含可供其他应用程序使用的有用例程.使用静态库是重用代码的一种绝佳方式.您不必在自己创建的每个程序中重新实现这些例程,而只需对这 ...

  4. CMake创建和使用静态链接库

    生成静态库 cmake_minimum_required(VERSION 2.8) project(myprj)set(CMAKE_CXX_FLAGS "-fpermissive" ...

  5. vc6.0静态链接库的创建与使用方法

    1.建立如下的工程 选择该界面的最后一个,即创建了一个静态链接库,注意填写工程的名称. 2.在该工程下创建lib.h和lib.cpp两个文件 lib.h中源代码如下: #ifndef LIB_H #d ...

  6. 【转载】linux静态链接库与动态链接库的区别及动态库的创建

    这篇文章对于动态库的概念及使用介绍的很不错,故收藏了. 一.引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数 ...

  7. Linux环境下c语言静态链接库和动态链接库创建和使用

    库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 面对比一下两者: 静态链接库:当要使用时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功, ...

  8. cnsl是什么意思_VS2010下创建静态链接库和动态链接库

    VS2010下创建静态链接库和动态链接库 类封装成dll如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类 ...

  9. GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库(gcc -fPIC -shared)的创建和使用

    1. 库文件 所谓库文件,读者可以将其等价为压缩包文件,该文件内部通常包含不止一个目标文件(也就是二进制文件). 值得一提的是,库文件中每个目标文件存储的代码,并非完整的程序,而是一个个实用的功能模块 ...

  10. C++ 创建静态链接库和动态链接库

    上篇文章演示了如何使用C++ 编译的静态链接库和动态链接库,本篇文章主要介绍如何创建静态链接库和动态链接库,本文使用的工具是visual studio 2019 企业版,需要安装对应的C++sdk,可 ...

最新文章

  1. win7上Docker使用
  2. Wt::WPaintDevice
  3. .NET完全手动搭建三层B/S架构
  4. 用Freemind画“脑图”
  5. js之数据类型及类型转换
  6. HTTP get post put delte等
  7. 明年起网剧可参评白玉兰奖 你期待哪部网剧上榜?
  8. 文本框添加问内容下划线
  9. 请检查virtualboxapi是否正确安装_MBR膜组件安装施工方案指南
  10. microsoft visual c++全家桶_“网蓝”盒子咖啡新品来袭!顺德第①桶MINI冰摇咖啡,可以背着逛街...
  11. Java 插入排序算法
  12. java数字金额大写金额_Java将数字金额转为大写中文金额
  13. 如何写一篇高质量的伪原创文章
  14. 计算机组装与维护论文大一,【计算机组装与维护浅析论文】 计算机组装与维护论文...
  15. 一位 70 后程序员的 26 个职场感悟
  16. cocos2d简单弹球
  17. 韦小宝丝绸|如何鉴别香云纱可以用以下六种方法
  18. 华硕笔记本能通用的BIOS型号
  19. 单向链表与双向链表的区别
  20. 【翻译】大规模软件多样性作为防御机制——Massive-Scale Software Diversity as a Defense Mechanism

热门文章

  1. Python pip windows安装
  2. Linux设备驱动--块设备(一)之概念和框架(转)
  3. 反射生成SQL语句入门
  4. code collection 0.44版 发布
  5. “敏捷开发”怎么就“敏捷”了
  6. now.js 0.1.0 发布了
  7. kickstart无人值守自动安装操作系统
  8. 简单实用的 Ubuntu 快捷键
  9. 微软在华推广Win7拒绝“黑屏”
  10. 2010年安全主题展望