当前位置: 首页 > news >正文

在程序中链接静态库

现在我们把上面src目录中的add.cpp、div.cpp、mult.cpp、sub.cpp编译成一个静态库文件libcalc.a。 

add_library(库名称 STATIC 源文件1 [源文件2] ...) 
link_libraries(<static lib> [<static lib>...])

 参数1:指定出要链接的静态库的名字
可以是全名 libxxx.a
也可以是掐头(lib)去尾(.a)之后的名字 xxx
参数2-N:要链接的其它静态库的名字

如果该静态库不是系统提供的(自己制作或者使用第三方提供的静态库)可能出现静态库找不到的情况,此时可以将静态库的路径也指定出来: 

link_directories(<lib path>)

 CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.0)
project(CALC)
# 搜索指定目录下源文件
file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
# 包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)
# 包含静态库路径,这样就可以找到静态库所在路径了
link_directories(${PROJECT_SOURCE_DIR}/lib)
# 链接静态库
link_libraries(calc)
add_executable(app ${SRC_LIST})

 file中的.cpp其实就是main.cpp,因为源文件已经存储到了静态库中了,

 

因为静态库是不可执行的,所以生生成app可执行文件,运行结果如上图。

当然头文件的指定也是必须要的。

 

相关文章:

在程序中链接静态库

现在我们把上面src目录中的add.cpp、div.cpp、mult.cpp、sub.cpp编译成一个静态库文件libcalc.a。 add_library(库名称 STATIC 源文件1 [源文件2] ...) link_libraries(<static lib> [<static lib>...]) 参数1&#xff1a;指定出要链接的静态库的名字 可以是全…...

TortoiseSVN 状态图标不显示的两种解决办法

文章目录 TortoiseSVN 方式解决注册表方式解决 TortoiseSVN 方式解决 在桌面或者资源管理器中鼠标右键打开 TortoiseSVN 设置选择 Icon Overlays (图标覆盖)Status cache&#xff08;状态缓存&#xff09; 选择 ‘Shell’ 选择 Icon Overlays&#xff08;图标覆盖&#xff09;…...

NSSCTF-Crypto入门题 练习记录贴 ‘‘一‘‘

文章目录 前言001[鹤城杯 2021]easy_crypto002[强网拟态 2021]拟态签到题003[SWPUCTF 2021 新生赛]crypto8004[SWPUCTF 2021 新生赛]crypto7005[SWPUCTF 2021 新生赛]crypto6006[SWPUCTF 2021 新生赛]ez_caesar007[SWPUCTF 2021 新生赛]crypto10008[鹤城杯 2021]A_CRYPTO009[SW…...

Day03:注意事项、this关键字、构造器、JavaBean、String、ArrayList

OOP的注意事项 类名要跟class文件名一致&#xff08;一个class可以有多个类&#xff0c;但只有一个public&#xff0c;且与文件名一致&#xff09;&#xff0c;命名介意大驼峰&#xff1b;如果某个对象没有变量指向他&#xff0c;就成垃圾对象了&#xff08;空指针&#xff09…...

【从0到1设计一个网关】性能优化---缓存

文章目录 为什么要用缓存?Caffeine Cache使用Caffeine效果演示为什么要用缓存? 首先先了解一下为什么在网关中我们需要用到缓存。 我们可以从如下几点来入手这个问题: 处理大规模流量: 网关是系统的入口,需要处理大规模的请求流量。高性能的网关能够快速而有效地处理大量…...

Typescript -尚硅谷

基础 1.ts是以js为基础构建的语言&#xff0c;是一个js的超集(对js进行了扩展)&#xff1b; 2.ts(type)最主要的功能是在js的基础上引入了类型的概念; Js的类型是只针对于值而言&#xff0c;ts的类型是针对于变量而言 Ts可以被编译成任意版本的js&#xff0c;从而进一步解决了…...

以 Kubernetes 原生方式实现多集群告警

作者&#xff1a;向军涛、雷万钧 来源&#xff1a;2023 上海 KubeCon 分享 可观测性来源 在 Kubernetes 集群上&#xff0c;各个维度的可观测性数据&#xff0c;可以让我们及时了解集群上应用的状态&#xff0c;以及集群本身的状态。 Metrics 指标&#xff1a;监控对象状态的量…...

2023年A股借壳上市研究报告

第一章 借壳上市概况 1.1 定义 借壳上市作为一种独特的资本市场操作手法&#xff0c;历来是企业拓展融资渠道和实现市场战略目标的重要途径。具体来说&#xff0c;借壳上市可分为狭义与广义两种模式。在狭义的定义下&#xff0c;借壳上市是指一家已上市的公司的控股母公司&am…...

【TiDB】TiDB CLuster部署

目录 0 大纲 一 集群部署工具TiUP简介 1 TiUP 简介 2 TiUP使用 3 TiUP使用举例 二 TiDB Cluster安装配置需求 1 生产环境硬件需求 2 操作系统需求 三 TIDB部署 1 软硬件需求以及前置检查​编辑 2 安装TiUP 组件 ​3 集群拓扑文件 4 执行部署命令 &#xff08;1&…...

odoo16 库存初始化 excel导入问题

最近在为一家公司实施odoo时&#xff0c;发现库存模块实施过程中按用户实际&#xff0c;产品初始化就是个问题。下面一一记录下 一个新公司&#xff0c;产品都有上百种&#xff0c;甚致几千种&#xff0c;如何把现有产品数据录入系统就是个不小的活。odoo16是有导入导出功能不…...

2023.11.11 关于 Spring 中 Bean 的作用域

目录 Bean 的作用域 作用域的定义 Singleton&#xff08;单例作用域&#xff09; Prototype&#xff08;原型作用域&#xff09; Request&#xff08;请求作用域&#xff09; Session&#xff08;会话请求&#xff09; Application&#xff08;全局作用域&#xff09; …...

5 Paimon数据湖之表数据查询详解

更多Paimon数据湖内容请关注&#xff1a;https://edu.51cto.com/course/35051.html 虽然前面我们已经讲过如何查询Paimon表中的数据了&#xff0c;但是有一些细节的东西还需要详细分析一下。 首先是针对Paimon中系统表的查询&#xff0c;例如snapshots\schemas\options等等这些…...

时间序列预测实战(十二)DLinear模型实现滚动长期预测并可视化预测结果

官方论文地址->官方论文地址 官方代码地址->官方代码地址 个人修改代码->个人修改的代码已经上传CSDN免费下载 一、本文介绍 本文给大家带来是DLinear模型&#xff0c;DLinear是一种用于时间序列预测&#xff08;TSF&#xff09;的简单架构&#xff0c;DLinear的核…...

封神教程:腾讯云3年轻量应用服务器老用户购买方法

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年优惠可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应…...

Ubuntu(WSL2) 安装最新版的 cmake

Ubuntu(WSL) 安装最新版的 cmake 具体流程如下&#xff1a; 步骤一&#xff1a;卸载原本的 cmake sudo apt-get remove cmake 步骤二&#xff1a; sudo apt-get update sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget 步…...

Android---内存泄漏的优化

内存泄漏是一个隐形炸弹&#xff0c;其本身并不会造成程序异常&#xff0c;但是随着量的增长会导致其他各种并发症&#xff1a;OOM&#xff0c;UI 卡顿等。 为什么要将 Activity 单独做预防&#xff1f; 因为 Activity 承担了与用户交互的职责&#xff0c;因此内部需要持有大…...

C/S架构学习之基于UDP的本地通信(客户机)

基于UDP的本地通信&#xff08;客户机&#xff09;&#xff1a;创建流程&#xff1a;一、创建数据报式套接字&#xff08;socket函数&#xff09;&#xff1a; int sock_fd socket(AF_UNIX,SOCK_DGRAM,0);if(-1 sock_fd){perror("socket error");exit(-1);}二、创建…...

【性能测试】服务端中间件docker常用命令解析整理(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、搜索 docker …...

【探索Linux】—— 强大的命令行工具 P.14(进程间通信 | 匿名管道 | |进程池 | pipe() 函数 | mkfifo() 函数)

阅读导航 引言一、进程间通信概念二、进程间通信目的三、进程间通信分类四、管道1. 什么是管道2. 匿名管道&#xff08;1&#xff09;创建和关闭⭕pipe() 函数⭕创建匿名管道⭕关闭匿名管道 &#xff08;2&#xff09;通信方式&#xff08;3&#xff09;用法示例&#xff08;4&…...

图论12-无向带权图及实现

文章目录 带权图1.1带权图的实现1.2 完整代码 带权图 1.1带权图的实现 在无向无权图的基础上&#xff0c;增加边的权。 使用TreeMap存储边的权重。 遍历输入文件&#xff0c;创建TreeMap adj存储每个节点。每个输入的adj节点链接新的TreeMap&#xff0c;存储相邻的边和权重 …...

零基础转行大模型选哪个岗位方向最易上手区别

零基础转行大模型选哪个岗位方向最易上手区别 标签&#xff1a;#人工智能、#深度学习、#自然语言处理、#神经网络、#机器学习、#计算机视觉、#ai ### 先打破一个误区&#xff1a;大模型≠只有算法岗&#xff0c;普通人也能进### 大模型岗位&#xff1a;哪些对数学/代码要求最低…...

C语言逆向学习基础课 第 11 课:宏定义与位运算陷阱详解

文章目录一、第11课 宏定义与位运算陷阱 完整细化课件1.1 课程基础信息1.2 课程核心目标1.3 课程核心内容拆解&#xff08;理论20分钟&#xff09;1.3.1 模块一&#xff1a;宏定义的核心陷阱与工业级规范1. 宏定义未加括号导致的运算符优先级陷阱&#xff08;最高频&#xff09…...

AIAgent语音识别不再依赖云端?2026奇点大会宣布边缘侧实时ASR芯片流片成功(功耗<1.2W,词错率提升41.6%)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AIAgent语音识别 2026奇点智能技术大会(https://ml-summit.org) 实时流式语音识别架构演进 本届大会重点展示了新一代AIAgent语音识别引擎——SonicCore v4.2&#xff0c;其核心突破在于将端到端流式识别延迟压缩至平均12…...

Matplotlib美化神器:用SciencePlots制作高颜值学术图的10个技巧

Matplotlib美化神器&#xff1a;用SciencePlots制作高颜值学术图的10个技巧 在数据科学领域&#xff0c;一张精心设计的图表往往比千言万语更能说明问题。然而&#xff0c;许多研究者在用Matplotlib绘制学术图表时&#xff0c;常常陷入反复调整格式的泥潭——字体大小不合适、颜…...

Nomic-Embed-Text-V2-MoE快速上手:Python安装与环境配置全攻略

Nomic-Embed-Text-V2-MoE快速上手&#xff1a;Python安装与环境配置全攻略 你是不是也对最近火热的文本嵌入模型感兴趣&#xff0c;想亲手试试那个号称性能很强的Nomic-Embed-Text-V2-MoE&#xff1f;但一看到要配置Python环境、安装各种库&#xff0c;就觉得头大&#xff0c;…...

AIAgent上线前最后防线:对抗训练验证协议V3.2(仅限头部AI团队使用的12项必检指标)

第一章&#xff1a;AIAgent架构中的对抗训练机制 2026奇点智能技术大会(https://ml-summit.org) 在多智能体协同推理与自主决策场景中&#xff0c;AIAgent 架构需具备对输入扰动、语义欺骗及策略性对抗行为的鲁棒性。对抗训练机制并非仅作为防御模块嵌入&#xff0c;而是深度…...

如何利用Jbuilder构建优雅的JSON:探索Builder风格DSL的核心原理

如何利用Jbuilder构建优雅的JSON&#xff1a;探索Builder风格DSL的核心原理 【免费下载链接】jbuilder Jbuilder: generate JSON objects with a Builder-style DSL 项目地址: https://gitcode.com/gh_mirrors/jb/jbuilder Jbuilder是一个强大的Ruby库&#xff0c;它提供…...

一键备份QQ空间:GetQzonehistory帮你永久保存青春记忆

一键备份QQ空间&#xff1a;GetQzonehistory帮你永久保存青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些年你在QQ空间写下的第一条说说吗&#xff1f;那些深夜的情感…...

C语言为什么是程序员的最爱?有什么不同吗

C语言作为一门古老而经典的编程语言&#xff0c;长久以来一直受到程序员们的热爱和推崇。在计算机科学的发展过程中&#xff0c;C语言不仅成为了众多编程语言的基石&#xff0c;更因其简洁、高效和灵活性而成为程序员们的首选。本文将探讨C语言为何成为程序员的最爱&#xff0c…...

如何在macOS上免费制作Windows启动盘:WinDiskWriter终极指南

如何在macOS上免费制作Windows启动盘&#xff1a;WinDiskWriter终极指南 【免费下载链接】windiskwriter &#x1f5a5; Windows Bootable USB creator for macOS. &#x1f6e0; Patches Windows 11 to bypass TPM and Secure Boot requirements. &#x1f47e; UEFI & Le…...