静态库文件和动态库文件的制作

1、 静态库文件
1) 新建项目->win32->win32控制台应用程序->输入库文件名称->确定->选择静态库。
2) 创建要调取的内容,比如一下:
Person.h:
#pragma once
class Person
{
public:
Person(void);
~Person(void);
};

Person.cpp:
#include "StdAfx.h"
#include "Person.h"
#include<iostream>
using namespace std;
Person::Person(void)
{
cout << "zhaowenjun" << endl;
}
Person::~Person(void)
{
}
3)点击编译,Dubug文件下会产生xxx.lib的文件
4)右键项目名->属性->配置属性->常规->输入目录:..\..\lib
5)再编译,会产生lib文件,下面有xxx.lib文件。
此时,静态库文件已经做好了,接下来是创建一个项目去调用创建好的静态库文件。
1) 新建项目->win32->win32控制台应用程序->输入库文件名称->确定->控制台应用程序。
2) 右键项目名->C/C++->附加包含目录:写入静态库文件的名字(例如: ..\staticLib)
3) 添加头文件(例如#include Person.h)
4) 右键项目名->连接器->常规->附加库目录:..\..\lib
5) 右键项目名->连接器->输入:前面加(xxx.lib;),
6) 定义对象,就可以调用静态库文件里面的函数了。

时间: 2024-10-13 15:13:06

静态库文件和动态库文件的制作的相关文章

在Linux中创建静态库.a和动态库.so

转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用函数制作成函数库,供其它程序使用. 函数库分为静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译

[付费视频]Delphi视频Android开发使用静态库(A)和动态库(SO)

关于本视频:前阵子接到一个委托,解决Delphi开发Android程序中串口通信的问题,厂家那边提供了c文件,需要翻译成delphi可用,翻译倒是比较简单.不过后来翻译读写ic卡单元的时候进行不下去了,delphi还提供的不太完整,而且底层提供的也有些bug,然后就有了直接使用.a和.so文件的想法,后来花不少精力,查阅资料和调试,终于调通了.特意录制本视频希望能为大家解决一些实际问题.顺便赚点零花钱. 视频录制过程间隔时间比较长,拼接起来的,观看过程中会有一些停顿现象.还有普通话太烂,请大家一

静态库(.a)与动态库(.so)的简明介绍

静态库(.a)与动态库(.so)的简明介绍 gcc有很多关于静态库,动态库的选项如-l,-L,-fPIC,-shared -Wl,-soname,看着很复杂容易混淆,其实静态库和动态库都是应需而生,只要有了一个线索都很容易理解. 普通编译 假设有三个文件(后面均使用这个例子): // mod1.c #include <stdio.h> void print_mod1(){ printf("%s\n",__func__); } // mod2.c #include <s

windows动态库与Linux动态库

Linux动态库和windows动态库的目的是基本一致的,但由于操作系统的不同,他们在许多方面还是不尽相同.但是尽管有差异Linux动态库的windows动态库还是可以移植的,有一些规则以及经验是必须的知道的. 两种系统动态库比较分析 Windows和Linux采用动态链接库技术 (1)动态库程序编写,在Windows系统下的执行文件格式是PE格式,动态库需要一个DllMain函数作为初始化的人口,通常在导出函数的声明时需要有_declspec(dllexport)关键字.Linux下的gcc编

Linux链接库二(动态库,静态库,库命名规则,建立个没有版本号的软连接文件)

http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 1.概念和区别:    静态库就是在编译过程中一些目标文件的集合.静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中.一旦链接完成,在执行程序的时候就不需要静态库了.     由于每个使用静态库的

安卓之Android.mk多文件以及动态库编译

1.多文件编译 多文件编译共有两种方式: (1) 在Android.mk中一一添加 LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径 include $(CLEAR_VARS) #清空当前环境变量 LOCAL_MODULE:= test #编译生成的目标名称 LOCAL_SRC_FILES := test1.c \ test2.c \ test3.c #编译该模块所需要的源文件 # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成

vs2013 调用只有dll文件的动态库(三)

当dll内包含多个算法时,我们的动态库dll项目创建与编译还可以简洁化如下: 源文件Windll.cpp: 1 #include"Windll.h" 2 int add(int x, int y) 3 { 4 return x + y; 5 } 6 int mult(int x, int y) 7 { 8 return x*y; 9 } 头文件Windll.h: 1 #ifndef LIB_H 2 #define LIB_H 3 #define DLL_API extern "

Linux链接库一(动态库,静态库,库放在什么路径下)

http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 大部分内容抄的以上文章的. 1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有别于

Linux命令之tail - 输出文件尾部/动态监视文件尾部

tail命令可以输出文件的尾部内容,默认情况下它显示文件的最后十行.它常用来动态监视文件的尾部内容的增长情况,比如用来监视日志文件的变化.与tail命令对应的是head命令,用来显示文件头部内容. 动态跟踪tomcat输出. # tail -f catalina.out 动态跟踪log4j日志 # tail -F log/IMX.LOG