【linux】——gcc/g++,make/makefile的简单使用
目录
1.gcc的基本使用
2.Linux下的静态库和动态库的理解
3.Linux项目自动化构建工具——make/makefile
1.gcc的基本使用
gcc是专门用来编译c语言的
g++是专门用来编译c++的,但是g++也能够用来编译c语言
预处理(进行宏替换)
2.Linux下的静态库和动态库的理解
g++的基本使用过程和gcc一样
谈谈链接:
Linux下已经携带了语言级别的头文件和语言对应的库。
库分为两种(库的本质也是一个文件)
linux下划分的
1.静态库
labXXXX.a
2.动态库
labXXX.so
windows下划分:
1.静态库(xxxx.lab)
2.动态库(xxxx.dll)
我们用的指令很大一部分是用c写的
如何看待指令呢?
指令就是程序,工具。指令,程序,工具其实就是一回事。
1.库分为静态库(专门让编译器,对用户的程序进行静态链接的)和动态库(专门让编译器,对用户的程序进行动态链接的)
2.静态库和静态链接:链接的时候,如果是静态链接,找到静态库,拷贝静态库中我所需要的代码到我自己的的可执行程序中。
3.动态库和动态链接:链接的时候,如果是动态链接,找到动态库,拷贝动态库中我所需要的代码的地址到我自己的可执行程序中的相关位置。
4.静态链接成功:我们的程序,不依赖任何库,自己就可以独立运行
5.动态链接成功:我们的程序,还是依赖动态库,一旦动态库缺失,我们的程序无法运行。
6.静态库:因为自身拷贝的问题,比较浪费空间
7.动态库:因为可以做到被大家共享方法,所以真正的实现永远是在库中,程序内部只有地址,比较节省空间。
8.静态库vs动态库:Linux系统默认的是动态库和动态链接
3.Linux项目自动化构建工具——make/makefile
1.make是一个命令
m(M)akefie是一个文件——在当前的源代码路径下
2.规则
makefile是一个围绕依赖关系和依赖路径构建的一个自动化编译的工具

以上只是简单的makefile的使用
相关文章:
【linux】——gcc/g++,make/makefile的简单使用
目录 1.gcc的基本使用 2.Linux下的静态库和动态库的理解 3.Linux项目自动化构建工具——make/makefile 1.gcc的基本使用 gcc是专门用来编译c语言的 g是专门用来编译c的,但是g也能够用来编译c语言 预处理(进行宏替换) 预处理功能主要包括宏…...
追梦之旅【数据结构篇】——详解C语言动态实现带头结点的双向循环链表结构
详解C语言动态实现带头结点的双向循环链表结构~😎前言🙌预备小知识💞链表的概念及结构🙌预备小知识💞链表的概念及结构🙌带头结点的双向循环链表结构🙌整体实现内容分析💞1.头文件编…...
华为OD机试真题Python实现【水仙花数 2】真题+解题思路+代码(20222023)
水仙花数 2 题目 给定非空字符串 s,将该字符串分割成一些子串 使每个子串的 ASCII 码值的和均为水仙花数 若分割不成功则返回 0若分割成功且分割结果不唯一 则返回-1若分割成功且分割结果唯一 则返回分割后子串的数目 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机…...
【原创】java+swing+txt学生学籍管理系统设计与实现
今天我们来介绍如何使用javaswingtxt来开发一个学籍管理系统。对的,你没看错,我们今天不用mysql,我们使用txt这个文本来进行数据存储,主要考察对文件读写的操作。 功能分析: 我们系统不要求做的很复杂,只…...
GCN项目实战1-SimGNN
文章目录SimGNN:快速图相似度计算的神经网络方法1. 数据2. 模型2.1 python文件功能介绍2.2 重要函数和类的实现SimGNN:快速图相似度计算的神经网络方法 原论文名称:SimGNN: A Neural Network Approach to Fast Graph Similarity Computation…...
经过深思熟虑后的接口测试自动化的总结与思考
序近期看到阿里云性能测试 PTS 接口测试开启免费公测,本着以和大家交流如何实现高效的接口测试为出发点,本文包含了我在接口测试领域的一些方法和心得,希望大家一起讨论和分享,内容包括但不仅限于:服务端接口测试介绍接…...
电脑自带的录屏放在哪里了?轻松弄懂,看这篇文章就明白了
有很多小伙伴有这个疑问,电脑自带的录屏放在哪里了?其实,电脑自带的录屏工具并不是所有电脑都要,具体要看你的电脑品牌和操作系统,Windows系统和Mac系统的电脑都自带了录屏工具,下面跟着小编一起来看看吧。…...
华为OD机试真题Java实现【字符串分割】真题+解题思路+代码(20222023)
字符串分割 给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含…...
【数据库】Apache Doris : 一个开源 MPP 数据库的架构与实践
文章目录Doris 背景介绍一、Doris二、Doris 定位适用场景 & 案例介绍一、适用场景二、具体案例Doris 整体架构一、Doris 整体架构二、Doris 数据分布三、Doris 的使用方式Doris 关键技术一、数据可靠性二、易运维三、MySQL 兼容性四、支持 MPPDoris 数据模型一、Doris 数据…...
day49【代码随想录】动态规划之最长公共子序列、不相交的线、最大子序和、判断子序列
文章目录前言一、最长公共子序列(力扣1143)二、不相交的线(力扣1035)三、最大子序和(力扣53)四、判断子序列(力扣392)前言 1、最长公共子序列 2、不相交的线 3、最大子序和 4、判断…...
华为OD机试真题Python实现【字母消消乐】真题+解题思路+代码(20222023)
字母消消乐 题目 游戏规则: 输入一个只包含英文字母的字符串, 字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作, 直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试…...
程序中的日期使用问题-格式转化:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils
前言 日期使用问题主要是格式转换的问题 场景:通过excel导入数据,其中一个字段为出生日期,需要对字段值进行合法性校验 博客地址:芒果橙的个人博客 【http://mangocheng.com】 一、个人浅谈日期 时间日期作为一个基础的标识和维度…...
C++——map和set的应用总结
目录1. 关联式容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set的介绍3.1.2 set的使用3.2 multiset3.2.1 multiset的介绍3.2.2 multiset的使用3.3 map3.3.1 map的介绍3.3.2 map的使用operator[]3.4 multimap3.4.1 multimap的介绍3.4.2 multimap的使用3.5 map和set在OJ中的…...
学习Python可以做什么工作?
一: 1、web开发:Python拥有非常完善与web服务器交互的库,大量的免费网页模板,相对于更具有优势,同时还具有非常优秀的Django框架,功能齐全。目前国内的豆瓣网、果壳网等,国外的Google、YouTube等…...
AWS攻略——Peering连接VPC
文章目录创建IP/CIDR不覆盖的VPC创建VPC创建子网创建密钥对创建EC2创建Peering接受Peering邀请修改各个VPC的路由表修改美东us-east-1 pulic subnet的路由修改悉尼ap-southeast-2路由测试知识点我们回顾下《AWS攻略——VPC初识》中的知识: 一个VPC只能设置在一个Re…...
程序员遇到人生低谷期怎么做?
每个人的一生都是起起伏伏的,你不会天天高潮,总会经历一段又一段的不如意,你怎么把握这一段段时间,如何掌控人生节奏,都源于对人生低谷期的回答。 尤其是2022年,程序员受到的冲击并不小,从年初…...
理解IM消息“可靠性”和“一致性”问题,以及解决方案探讨
试想如果一个IM连发出的消息都不知道对方到底能不能收到、发出的聊天内容对方看到的到底是不是“胡言乱语”(严重乱序问题),这样的APP用户肯定不会让他在手机上过夜(肯定第一时间卸载了),因为最基本的聊天逻…...
2021-08-29
服务器 主:172.17.0.2 master 备:172.17.0.3 slave1 lvs虚拟IP:172.17.0.100 #nginx下载地址 http://nginx.org/download/ 本地文件路径 1.dockerfile构建nginx FROM centos:7 ADD nginx-1.6.0.tar.gz /usr/local COPY nginx_install.sh /usr/local RUN sh …...
第八题、哈夫曼编码大全
题目: 哈夫曼编码大全 描述: 关于哈夫曼树的建立,编码,解码。 输入 第一行输入数字N,代表总共有多少个字符以及权值 第二第三行分别是一行字符串,以及每个字符对应的权值 接下来输入一个数M,表…...
linux集群技术(二)--keepalived(高可用集群)(二)
案例1--keepalived案例2--keepalived Lvs集群1.案例1--keepalived 1.1 环境 初识keepalived,实现web服务器的高可用集群。 Server1: 192.168.26.144 Server2: 192.168.26.169 VIP: 192.168.26.190 1.2 server1 创建etc下的…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
Django RBAC项目后端实战 - 03 DRF权限控制实现
项目背景 在上一篇文章中,我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统,为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...
