库的链接方式分为静态链接和动态链接
静态链接: 链接静态库生成可执行程序, 直接将库中我们用到的函数的实现代码指令, 写入到了可执行程序文件中, 程序运行的时候没有什么依赖.
动态链接: 链接动态库生成可执行程序, 并没有把库中函数的实现指令直接拿过来写入可执行程序中, 而是在可执行程序中记录了库中函数的符号信息表, 在运行可执行程序的时候再去加载动态库到内存中, 如果动态库不存在, 则程序无法运行.
在以下文件夹中制作并存放动态库与动态库:
文件夹main: 存放制作库的源文件, 以及测试源文件.
文件夹share_libraries: ./lib 文件夹中存放动态库, ./include文件夹中存放头文件.
文件夹static_libraries: ./lib 文件夹中存放动态库, ./include文件夹中存放头文件.
制作静态库与动态库的源码及头文件如下:
add.c
int add(int a, int b)
{
return a+b;
}
sub.c
int sub(int a, int b)
{
return a-b;
}
head.h
#ifndef __HEAD_H__
#define __HEAD_H__
int add(int a, int b);
int sub(int a, int b);
#endif
main.c
#include <stdio.h>
#include "head.h"
int main(int argc, char *argv[])
{
printf("a+b=%d\n", add(3, 1));
printf("a-b=%d\n", sub(3, 1));
return 0;
}
歌词编辑器 歌词编辑器 第一步:选择要播放的歌曲并播放 第二步:填写全部的歌词...
【排序算法】之lowb三人组冒泡、插入、选择 什么是lowb三人组 冒泡排序bubble so...
ADO对象: Connection Command Recordset Record Stream ASP支持的对象很多,可...
计算属性computed: 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持...
前言 相信大家都知道在IDE中代码的智能提示几乎都是标配,虽然一些文本编辑器也...
一、正则表达式概述 二、正则表达式在VBScript中的应用 三、正则表达式在VavaScr...
本文将研究 ES6 的 for ... of 循环。 旧方法 在过去,有两种方法可以遍历 javas...
vbs:把一段文字中指定字符颜色变成红色的正则 functionc(Tstr,Word) Dimre Setre...
微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很...
一石激起千层浪,继中国区浩浩荡荡的大裁员告一段落之后,甲骨文并未因此收起手...