CMake教程
CMake 链接
CMake 教程转载
Makefile tutorial
想了解什么是 CMake,首先我们要知道 Make 工具。若源文件、头文件不多,我们可以在命令行中手动写编译命令:
1$ gcc hello.c
但是当项目庞大起来后,假设hello.c依赖与 a.c、b.c,而 a.c 又依赖于库 w.lib,每一次编译,我们都要重新编写一次 gcc 编译命令行吗?所以,GNU 发明了 make 这个工具软件,可以编写 makefile 文件来指定特定的项目构建过程,当项目一个文件的代码更改时,我们只需要重新 make 一下就可以了。
虽然make大大简化了项目的构建过程,但依然有很多不足,比如:
make 对于类 unix 系统是通用的,但对 windows 系统并不友好(不能跨平台)
make 语法简单,也就导致了它功能的限制
不同编译器的语法规则不同,编写的 makefile 语法如果适合 GCC 则不适合 MSVC(不兼容)
所以,CMake就应运而生了。CMake 是比 Make 更高一层的工具,Make 是编写对应编译器的 makefile 从而实现编译,而 ...
Standford CS144 Lab 0
序言
满怀热忱开始 cs144 的旅途,第一个碰到的困难便是环境搭建。在这三天时间里不断配置、删库、配置,看了不知道多少博客(许多都是跟着文档一笔带过)和评论,最后终于完成了实验环境的搭建!
最初是打算做 SU CS144 最新的 2024 Spring minnow版本,但是它要求需要 ubuntu23、gcc 和 g++13 以上,如果环境没有达到实验要求,后面的 cmake 会出错。因此最后还是 2021 的Sponge版(听说这个版本的 lab4 TCP Connection 特别难,而在 minnow 版中直接换成了另一个简单的 lab)。
环境配置
我选择的是WSL2+VScode的方式进行实验,WSL2 安装起来非常简便而且体量轻,不仅可以在基于 Linux 的环境中进行开发,使用特定于 Linux 的工具链和实用程序,还可以在 Windows 上舒适地运行和调试基于 Linux 的应用程序。
工具链:gcc &g++ 13.1.0、gdb 12.1、make(由于我对于 gcc、g编译器,还有cmake、make、gdb都不了解,甚至 C也是现学现用的,因此 ...
概统期末考点(LaTex试用)
随机事件及概率
条件概率——全概率公式+贝叶斯公式
古典概型
一维随机变量(离散型+连续型)
离散型随机变量分布律/连续型随机变量概率密度
概率密度f(x)f(x)f(x)
分布函数<——> 概率密度的互推
重难点(步骤):求连续型变量XXX的函数Y(X)Y(X)Y(X)的分布函数和概率密度
二维随机变量(离散型+连布续型)
离散型随机变量联合分/边缘分布/条件分布(分布律)
连续型随机变量联合分布/边缘分布/条件分布(概率密度)
最难点:两个连续型随机变量的函数的分布 Z=X+YZ=X+YZ=X+Y、Z=XYZ=XYZ=XY、Z=XYZ=\frac{X}{Y}Z=YX、Z=max{X,Y}...Z=\max\{X,Y\}...Z=max{X,Y}...
独立性
随机变量的数字特征
数学期望E(X)E(X)E(X)
离散型/连续型E(X)E(X)E(X)公式
随机变量的函数的数学期望
离散/连续
一个随机变量/两个随机变量的函数
期望的性质
方差D(X)D(X)D(X)
D(X)与E(X)D(X)与E(X)D(X)与 ...
关于《张居正 第二卷:水龙吟》的题目含义
读罢《张居正》的第二卷,我发现这一卷的书名并没有很明确地在书中进行解析。第一卷所题“木兰歌”确是在卷末由玉娘为饯别高拱而在筵席上所弹唱的曲子《木兰歌》所提到,这首词精炼地概括了整卷书的内容,即张居正高拱两个大权力集团间的斗争。
世上事一半儿荒唐一半儿险恶,
皇城中尔虞我诈,衙门内铁马金戈。
羽扇纶巾,说是些大儒大雅,
却为何我揪着你,你撕着我,
制陷阱、使绊子,一个比一个更利索。
呜呼!今日里拳头上跑马抖威风,
到明日败走麦城,
只落得形影相吊英雄泪滂沱。
只可叹,荣辱兴衰转瞬间。
天涯孤旅,古道悲风,
都在唱那一个字:
错!错!!错!!! ——《张居正 第一卷:木兰歌》
第二卷书围绕“胡椒苏木折俸”一事展开,讲述的是张居正当上首辅而进行“京察”改革以及过程中遇到的许多阻力(高拱门人捣乱、与李太后冯保等人的权力制衡…)。关于第二卷名《水龙吟》,我在读之前便在想作者要以一种什么手法来带出这个名字,遗憾的是读完也没能理解这三个字(我的文学水平太低了…)。首先我对这个词牌名不太了解,只读过几首这个词牌的词,一般每个词牌名都会有它名字的来源。
据说,“水龙吟”最早是南北朝时北齐的一 ...
Git实操
什么是 Git
Git 是一个开源的分布式版本控制系统
当然,除了 Git 以外还有其他版本管理系统,如 CVS、Subversion 或 Perforce。但他们对数据信息的存储方式上有差别。
以文件变更列表的方式存储信息(存储每个文件与初始版本的差异)
把数据看作是对小型文件系统的一系列快照(snapshot)( 存储项目随时间改变的快照)
.git 文件夹是 Git 版本库的核心,它使得 Git 能够追踪文件的更改、管理分支、记录提交历史等。这个文件夹通常位于项目的根目录下。(隐藏)
有端联想操作系统中基于 inode 表的文件系统也利用这个技术,把 inode 表拷贝一份作为快照(系统还原点?)保存下来,这样子可以进行回退,实现基于快照的写时拷贝
Git 的四个工作区及状态
工作区(Work Space):未追踪(unstage/untracked)
暂存区(Staging area):已追踪(stage)
本地仓库(Local Repository)
远程仓库 (Remote Repository)
Git 工作流实操
开发时,我们可以有两种方式开 ...
读《庄子》
古代哲学思想与现代科学理论的联系——论自然科学视角下庄子之“道”
摘要:
由《庄子》首篇《逍遥游》中的蜩鸠之笑与小大之辩,联想到对时空维度的讨论,引发对哲学与科学二者关系的思考。我们能否以自然科学的思想来解释哲学呢?为了解决问题,探讨自然辩证法在学习古代哲学思想上的应用。自然辩证法揭示了自然科学发展的内在逻辑、人对自然界的能动关系等,它不但把科学看作是一种独立的社会现象,探讨其在一定社会中发展和发挥作用的规律,而且也把与科学紧密相关的技术作为一种独立的社会现象来研究。剖析庄子思想的两个组成部分——道论和德论,我们以现代视角来认知庄子道家思想。
关键词:自然辩证法、科学技术、庄子哲学
一、从《逍遥游》看时空维度
蜩与学鸠笑之曰:“我决起而飞,抢榆枋而止,时则不至,而控于地而已矣,奚以之九万里而南为?”适莽苍者,三餐而反,腹犹果然;适百里者,宿舂粮;适千里者,三月聚粮。之二虫又何知!小知不及大知,小年不及大年。 奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥灵者,以五百岁为春,五百岁为秋;上古有大椿者,以八千岁为春,八千岁为秋。此大年也。而彭祖乃今以久特闻,众人匹 ...
Go语法笔记
基本数据类型
变量的声明:常量(const) 变量(var) 类型(type)
类型转换:需要显式的强制类型转换(不同于 C,表现为强类型语言)
1var m float64 = float64(i)
String:和 C/C++ 不一样,Go 中的字符串是根据长度限定,而非特殊字符 \0
自增/自减运算符:++ 和 – 的只能作为语句,而非表达式 (不同与 C!)
12//错误示例val = arr[i++]
控制结构
1. if-else
Go 看起来不使用分号作为语句的结束,但实际上这一过程是由编译器自动完成
2. switch
switch 从上往下执行 case 语句直到匹配成功
多重条件判断使用 switch true{case: … case: …}形式
3. for
Go 中的循环体只有 for 一种
for 后直接加上条件判断成为 C 中的 while
1234for index < 8{ //循环 index++}
for-range 遍历
12345678for index , value := rang ...