24 - 第三方库的使用支持

news2024/11/27 21:00:50

---- 整理自狄泰软件唐佐林老师课程

文章目录

  • 1. 第三方库的使用支持
    • 1.1 问题
    • 1.2 经验假设
    • 1.3 第三方库在项目中的位置
  • 2. 第三方库的编译阶段支持
  • 3. 第三方库的链接阶段支持
  • 4. 实验

1. 第三方库的使用支持

1.1 问题

当需要使用第三方库文件时,编译环境中的 makefile 该如何修改?

1.2 经验假设

  • 第三方库通过函数调用的方式提供库中的功能
  • 库文件发布时都附带了声明库函数原型的头文件
  • 编译阶段使用头文件,链接阶段使用库文件

1.3 第三方库在项目中的位置

在这里插入图片描述

2. 第三方库的编译阶段支持

  • 定义变量 DIR_LIBS_INC 用于指示头文件的存储位置
    DIR_LIBS_INC := $(DIR_PROJECT)/libs/inc
  • 使用 DIR_LIBS_INC 提示 make 头文件的存储位置
    vpath %$(TYPE_INC) $(DIR_LIBS_INC )
  • 使用 DIR_LIBS_INC 提示编译器头文件的存储位置
    CFLAGS += -I$(DIR_LIBS_INC)
  • 注意事项:
    必须考虑拷贝后得到库文件和原始库文件的新旧关系

3. 第三方库的链接阶段支持

  • 定义变量 EXTERNAL_LIB 用于保存第三方库列表
  • 目标 link 需要依赖于第三方库

在这里插入图片描述
注意:第三方库必须最后一个依赖,这是为了处理一种极端的情况:我们的一个子模块和库文件的名字相同。
在这种情况下,优先使用自己的模块而不是第三方库模块。

4. 实验

在这里插入图片描述
在这里插入图片描述

24 - 第三方库的使用支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2中用到了 vuex 实现一个 留言板效果

一.效果图展示&#xff1a; 二.静态网页&#xff08;html&#xff09;代码 <template><div><h1>班级留言板</h1><ol><li v-for"(msg, index) in classmsgs" :key"index">{{ msg }} <a href"#" click.p…

折叠屏、曲面屏始终都是少数派,凭啥挑战iPhone16?

国内手机市场是一个很特别的市场&#xff0c;眼见着在处理器性能、拍照等方面都已无法再挑战苹果&#xff0c;国产手机这几年紧紧抓住折叠屏、曲面屏等差异化技术&#xff0c;试图与苹果掰手腕&#xff0c;然而从现实来看&#xff0c;这些技术其实都已失败了。 曲面屏基本可以说…

直接计算法计算CRC-32/MPEG-2

代码&#xff1a; #include<stdio.h>#define BUFFER_SIZE 114typedef unsigned int uint32_t; typedef unsigned char uint8_t;uint8_t output[BUFFER_SIZE*4]; static const uint32_t aDataBuffer[BUFFER_SIZE] {0x00001021, 0x20423063, 0x408450a5, 0x60c670e7, …

引领八亿人的“发现感”,深度旅游时代正式到来

原文链接&#xff1a;深度旅游新纪元已降临&#xff0c;我们正带领八亿旅行者开启探索之旅&#xff0c;发现世界的无限精彩 一些人在旅行时渴望探索全新的城市&#xff0c;体验那里独特的风情&#xff1b;而另一些人则被“必住榜”上的苏州平江华府酒店吸引&#xff0c;想要亲…

计算机毕业设计Spark+PyTorch股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

《SparkPyTorch股票推荐与预测系统》开题报告 一、研究背景与意义 随着信息技术的飞速发展和全球金融市场的日益繁荣&#xff0c;股票投资已成为广大投资者的重要选择之一。然而&#xff0c;股票市场的复杂性和不确定性使得投资者在做出投资决策时面临巨大的挑战。传统的股票…

ceph中pg与pool关系

在Ceph中&#xff0c;PG&#xff08;Placement Group&#xff09;和Pool是非常重要的概念&#xff0c;它们在Ceph的存储架构中扮演着关键角色。理解这些概念有助于更好地管理和优化Ceph集群。下面详细介绍这两个概念及其相互关系。 Pool&#xff08;存储池&#xff09; 定义&am…

牧野机床采集数据

牧野于1958年研发出日本第一数控铣床,并于1966年研发成功日本第一台加工中心。我在市面上常见的到的加工中心P5、P6系统,其余的就是EDM数控系统。他们两个用的不是同一种系统,采集方式也有区别,大家要注意。 牧野机床(中国)有限公司,于2002年7月23日在江苏昆山成立,是一…

sqli-labs靶场通关攻略(六十一关到六十五关)

sqli-labs-master靶场第六十一关 步骤一&#xff0c;判断闭合方式 ?id1)) -- 步骤二&#xff0c;查看数据库 ?id1)) and updatexml(1,concat(1,(select database())),1) -- 步骤三&#xff0c;查看表名 ?id-1)) and updatexml(1,concat(1,(select group_concat(table_na…

【K8s】专题十三:Kubernetes 容器运行时之 Docker 与 Containerd 详解

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 Linux 专栏 | Docker 专栏 | Kubernetes 专栏 往期精彩文章 【Docker】&#xff08;全网首发&#xff09;Kyl…

记忆化搜索【上】

509. 斐波那契数 题目链接&#xff1a;斐波那契数 递归&#xff08;暴搜&#xff09; 斐波那契数列&#xff0c;最传统的解法&#xff0c;采用递归&#xff1a; class Solution { public:int fib(int n){return dfs(n);}int dfs(int n){if(n 0 || n 1)return n;return d…

搭建核心架构网络项目(局域网)

一个基础项目的搭建 一、项目简介 这个项目主要就是最基础的一个局域网&#xff0c;模拟现实企业的网络架构&#xff0c;确保网络的安全性&#xff0c;通过VLAN划分实现不同部门或用户组的隔离等。 下图是我们这次要搭建的局域网拓扑图。&#xff08;左边为财务部门&#xff0…

[Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解

目录 1.kotori和n皇后1.题目链接2.算法原理详解 && 代码实现 2.取金币1.题目链接2.算法原理详解 && 代码实现 3.矩阵转置1.题目链接2.算法原理详解 && 代码实现 1.kotori和n皇后 1.题目链接 kotori和n皇后 2.算法原理详解 && 代码实现 解法&…

Yapi部署文档

Yapi是高效、易用、功能强大的API管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务 官网地址&#xff1a;Yapi 环境&#xff1a; l Git l NodeJs&#xff08;7.6&#xff09; l Mongodb&#xff08;2.6&#xff09; 1、 NodeJs的安装 获取资源 …

嵌入式硬件-ARM处理器架构,CPU,SOC片上系统处理器

多进程空间内部分布图&#xff1a;注意&#xff1a;创建线程实际使用兑取空间&#xff0c;栈区独立 ARM处理器架构&#xff1a; 基于ARM920T架构的CPU:以下时哈佛结构ARM920T是ARM公司的32位RISC&#xff08;精简指令集计算机&#xff09;处理器内核。它具有以下特点&#xff1…

day-47 组合

思路 回溯&#xff1a;利用个dfs方法递归调用&#xff0c;每个元素有选或不选两种抉择&#xff0c;当选中元素个数等于k时&#xff0c;将链表p加入答案&#xff0c;当idsn且选中元素个数小于n时&#xff0c;直接返回 解题过程 每次选中元素调用dfs方法后记得还原 Code class…

【数据结构】顺序表和链表——顺序表(包含丰富算法题)

文章目录 1. 线性表2. 顺序表2.1 概念与结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 动态顺序表的实现2.4 顺序表算法题2.4.1 移除元素2.4.2 删除有序数组中的重复项2.4.3 合并两个有序数组 2.5 顺序表问题与思考 1. 线性表 线性表&#xff08;linear list&#xff09;…

vivado 定义时间约束

定义时间约束和 例外情况 在本实验中&#xff0c;您将学习两种为设计创建约束的方法。您必须使用 AMD Vivado™IDE中包含的AMD Kintex™7 CPU网表示例设计。 第一步&#xff1a;打开示例项目 1.打开Vivado IDE。 •在Linux上&#xff1a; 1.更改实验室材料的存储目录。 cd&…

HarmonyOS--后台代理提醒

一、概述 HarmonyOS提供后台代理提醒功能&#xff0c;在应用退居后台或退出后&#xff0c;计时和提醒通知功能被系统后台代理接管。后台代理提醒就是由系统后台进程代理应用的提醒功能。后台代理提醒服务通过reminderAgentManager模块提供提醒定义、创建提醒、取消提醒等能力。…

zdppy+vue3+onlyoffice文档管理系统实战 20240902 上课笔记 登录功能优化

遗留问题 1、登录以后跳转最近文档2、如果用户没有登录应该自动跳转登录页面3、如果用户的token校验失败&#xff0c;应该自动调整登录界面4、按回车键自动跳转登录页面 登录以后跳转最近文档 const router useRouter() router.push("/")实际代码&#xff1a; c…

C++篇:C向C++迈进(下)

目录 引言 缺省参数 1.缺省参数的概念 2.缺省参数的分类 2.1 全缺省 2.2 半缺省 3.注意事项 函数重载 1.函数重载的定义 2.函数重载的基本规则 3.函数重载的运用场景 引用 1.引用的概念 2.引用的主要特性 3.常引用 4.引用的使用场景 4.1 函数参数传递 4.2 函…