牛客Linux高并发服务器开发学习第二天

Gcc编译

利用gcc 生成应用时如果不加-o 和应用名,默认生成a.out

可以用./ a.out打开

Gcc工作流程

可执行程序Windows系统中为.exe

Linux系统中为.out

g++也可以编辑c程序

gcc也可以编译cpp代码,只是在编译阶段gcc不能自动共和C++程序使用的库进行联接,所以通常用g++完成链接。 

gcc命令不能自动和C++程序使用的库联接,但在编译阶段g++会自动调用gcc,二者等价。 

Gcc常用参数选项

gcc -DDEBUG

相当于在test.c开头#define DEBUG,方便我们进行调试信息输出,一般测试参数在发布的时候不用输出,在调试的时候才输出。

因此测试参数,或者调试信息可以写在#ifdef DEBUG 和#endif中间。

-Wall 会提示警告,比如代码中定义了a但没有使用,会浪费内存。

静态库

库是计算机上的一类文件,可以看成是代码仓库,提供给使用者一些可以直接拿来用的变量、函数或类。

是特殊的程序,不能单独运行。

库文件分为静态库、动态库(共享库)。

静态库载程序的链接阶段被复制到程序中,

动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序使用。

库的好处:代码保密。方便部署和分发。

命名规则

Linux:libxxx.a

lib:前缀(固定)

xxx:库名字,自己起

.a:后缀(固定)

Windows:libxxx.lib

静态库的制作

gcc获得.o文件

将.o文件打包,使用ar工具 (archive)

ar rcs libxxx.a xxx.o xxx.o

r -将文件插入备存文件中

c -建立备存文件

s -索引

将head下的加减乘除函数打包成静态库

学习进度

Linux系统编程入门 01:18:11

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

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

相关文章

JS-43-Node.js02-安装Node.js和npm

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,可以让JavaScript实现后端开发,所以,首先在本机安装Node.js环境。 一、安装Node.js 官网:下载 Node.js 默认两个版本的下载: 64位windows系统的LTS(Long Tim…

CST电磁仿真物体表面的Sheet结构和生成3D Model【基础教程】

由Sheet结构生成3D Model 使用Shell Solid and Thicken Sheet! Modeling > Tools > Shape Tools > Shell Solid or Thicken Sheet Shell Solidor ThickenSheet会根据不同类型的模型提供两种完全不同的功能。 如033.由3D Model生成Cavity 所述&#xff…

UE5 GameplayAbility 源码定义解析

这一篇文章主要是对GA的源码定义文件的解析,方便后续学习对GA内部的内容做一个了解,而不是去学习GA的实现。 首先对源码注释进行一个了解 // Copyright Epic Games, Inc. All Rights Reserved.#pragma once#include "CoreMinimal.h"// 包含核…

从日志读取关键数据,按照相关日期进行数据分析

分析靠近后向挡墙的距离 import os import re import sys import matplotlib.pyplot as plt from datetime import datetimedef process_distance_data(file_path):distances []timestamps []try:with open(file_path, r, encodingutf-8, errorsignore) as file:for line in…

飞行机器人专栏(十四)-- Kinect DK 人体骨骼点运动提取方法

系列文章目录 Ubuntu 18.04/20.04 CV环境配置(下)--手势识别TRTposeKinect DK人体骨骼识别_ubuntu kinect骨骼测试-CSDN博客文章浏览阅读1.3k次。trt_pose_ros kinect实现手势识别和人体骨骼识别,用于机器人运动控制参考_ubuntu kinect骨骼测…

Postgresql源码(126)TupleStore使用场景与原理分析

相关 《Postgresql源码(125)游标恢复执行的原理分析》 《Postgresql游标使用介绍(cursor)》 总结 开源PG中使用tuple store来缓存tuple集,默认使用work_mem空间存放,超过可以落盘。在PL的returns setof场景…

Pascal VOC(VOC 2012、VOC 2007) 数据集的简介

一、数据集介绍 PascalVOC(2005~2012)数据集是PASCAL VOC挑战官方使用的数据集。该数据集包含20类的物体。每张图片都有标注,标注的物体包括人、动物(如猫、狗、岛等)、交通工具(如车、船飞机等)、家具(如椅…

Redux极客园项目初始化搭建

基本结构搭建 实现步骤 在 Login/index.js 中创建登录页面基本结构在 Login 目录中创建 index.scss 文件,指定组件样式将 logo.png 和 login.png 拷贝到 assets 目录中 代码实现 pages/Login/index.js import ./index.scss import { Card, Form, Input, Button }…

【LLM】认识LLM

文章目录 1.LLM1.1 LLM简介1.2 LLM发展1.3 市面常见的LLM1.4 LLM涌现的能力 2.RAG2.1 RAG简介2.2 RAG 的工作流程2.3 RAG 和 Finetune 对比2.4 RAG的使用场景分析 3. LangChain3.1 LangChain简介3.2 LangChain的核心组件3.3 LangChain 入门 4.开发 RAG 应用的整体流程5. 环境配…

【HBase】HBase深度解析:特性、实战应用及核心流程全景

HBase 是一个开源的、非关系型的分布式数据库(NoSQL),它建立在 Hadoop 文件系统(HDFS)之上。HBase 旨在存储海量的稀疏数据集,这种数据集通常是由用户界面事件、消息系统、传感器设备等产生的时间序列数据。…

GPT状态和原理 - 解密OpenAI模型训练

目录 1 如何训练 GPT 助手 1.1 第一阶段 Pretraining 预训练 1.2 第二阶段:Supervised Finetuning有监督微调 1.3 第三阶段 Reward Modeling 奖励建模 1.4 第四阶段 Reinforcement Learning 强化学习 1.5 总结 2 第二部分:如何有效的应用在您的应…

mapreduce中的MapTask工作机制(Hadoop)

MapTask工作机制 MapReduce中的Map任务是整个计算过程的第一阶段,其主要工作是将输入数据分片并进行处理,生成中间键值对,为后续的Shuffle和Sort阶段做准备。 1. 输入数据的划分: 输入数据通常存储在分布式文件系统(…

Go中的HTTP请求处理概述

使用 Go 处理 HTTP 请求主要涉及两件事:ServeMuxes 和 Handlers。 ServeMux本质上是一个 HTTP 请求路由器(或多路复用器)。它将传入的请求与预定义的 URL 路径列表进行比较,并在找到匹配时调用路径的关联 handler。 handler 负责写…

原生实现ajax

1 什么是ajax AJAX Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网…

unity学习(85)——同步节奏(tcp架构确实有问题)

挂的时间长了,就出现其他下线本地不destroy的情况了,而且此时再登录,新渲染中已经没有已经下线的玩家 unity这边就没有收到126!!!125的问题是多种多样的!!! 化简服务器w…

设计循环队列(队列oj)

1.设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。…

网站结构规范对于独立站的重要性

网站结构是指通过优化网站的内部结构和布局,以提高其在搜索引擎结果页面(SERP)中的排名和可见性的过程。 涉及到网站内部链接、导航菜单、网站url路径、网站地图等细节。 网站结构的优化可以更好地帮助搜索引擎了索引网站的内容&#xff0c…

【笔记】vscode debug进入site-packages包源码

选择左侧栏第三个图标,点击创建 launch.json 文件 选择 Python Debugger 选择Python文件 这里可以看到launch.json 文件 在configurations中添加键值对 "justMyCode": false在文件中打上断点,点击"三角符"号开始调试 按F11或者红框…

reportlab 生成pdf文件 (python)

1 安装 pip install reportlab2 应用场景 通过网页动态生成PDF文档大量的报告和数据发布用XML一步生成PDF 官网案例 3 PLATYPUS Platypus是“Page Layout and Typography Using Scripts”,是使用脚本的页面布局和印刷术的缩写,这是一个高层次页面布局…

【面试题】MySQL 事务的四大特性说一下?

事务是一个或多个 SQL 语句组成的一个执行单元,这些 SQL 语句要么全部执行成功,要么全部不执行,不会出现部分执行的情况。事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 事务的主要作用是保证数…