Linux基础入门(四)
Makefile
规则
Makefile的框架由规则构成。make命令执行时先在Makefile文件中查找各种规则,对各种规则进行解析后运行规则。
12345#每条规则的语法格式:target1,target2...: depend1, depend2, ... command ...... ......
每条规则由三个部分组成,分别是目标(target),依赖(depend)和命令(command)。
命令(command):当前这条规则的动作,一般情况下是一个shell命令。
例如:通过某个命令编译文件,生成库文件,进入目录等。
动作可以是多个,每个命令前必须有一个tab并且独占一行
依赖(depend):规则所必需的依赖条件,在规则的命令中可以使用这些依赖。
可以为空,可以是其他规则中的某个目标,可以指定多个。
目标(target):规则中的目标,这个目标和规则中的命令是对应的
通过执行命令,可以生成一个和目标同名的文件。
规则中可以有多个命令,因此可以有多个目标。
123456789101112131415161718#单个目标,单个命令app ...
Linux基础入门(三)
Linux基础入门(三)
GCC
GCC是Linux下的编译工具集,是GNU Compiler Collection的缩写,包含gcc、g++等编译器,这个工具集不仅包含编译器,还包含其他工具集,例如ar、nm等。
安装GCC
12345678910111213ubuntusudo apt updatesudo apt install gcc g++centossudo yum updatesudo yum install gcc g ++查看gcc版本gcc -v查看g++版本g++ -v
gcc工作流程
GCC编译器对程序的编译分为四个阶段:预处理(预编译)、编译和优化、汇编和链接。GCC编译器可以将这四个步骤合并成一个。
1.预处理:GCC调用预处理器来完成;展开头文件、宏替换、去掉注释行。
2.编译:GCC调用编译器对文件进行编译,最终得到一个汇编文件。
3.汇编:GCC调用汇编器对文件进行汇编,最终得到一个二进制文件。
4.链接:GCC调用链接器对程序需要调用的库进行链接,最终得到一个可执行的二进制文件。
文件名后缀
说明
gcc参数
.c
源文件
无
. ...
Linux基础入门(二)
Linux基础入门(二)
压缩命令
tar
tar是打包工具,不能压缩文件。gzip和bzip2,不能打包压缩文件,每个文件都会生成一个单独的压缩包,并且压缩之后不会保留原文件。
我们可以将两者结合,先使用tar进行打包,然后使用gzip和bzip2进行压缩。
压缩(.tar.gz .tar.bz2 .tgz)
123tar 参数 生成压缩包的名字 要压缩的文件或目录(中间用空格隔开)# 使用gzip,标准后缀格式为:.tar.gz# 使用bzip2,标准后缀格式为:.tar.bz2
c:创建压缩文件
z:使用gzip的方式进行文件压缩
j:使用bzip2的方式进行文件压缩
v:压缩过程中显示压缩信息
f:指定压缩包的名字
一般认为.tgz文件就等同于.tar.gz 文件。
将config文件夹与b.txt文件以gzip的方式进行压缩,得到a.tar.gz这个压缩包。
解压缩(.tar.gz .tar.bz2 .tgz)
12345#解压到当前目前tar 参数 压缩包名#解压到指定目录中tar 参数 压缩包名 -C 解压目录
x:释放压缩文件内容
z:使用gzip的 ...
C++特性学习
const与constexpr
const
如果 const 变量的初始化值是常量表达式,那么它就是编译时常量。编译时常量使编译器能够执行非编译时常量无法提供的优化。
1234567891011#include <iostream>int main(){ const int x { 3 }; // x 是编译时常量 const int y { 4 }; // y 是编译时常量 std::cout << x + y; // x + y 是编译时常量 return 0;}
当编译器编译时,它可以计算x+y的值,并将其替换为7。
任何用非常量表达式初始化的 const 变量都是运行时常量。运行时常量是在运行时才知道其初始化值的常量。
123456789101112#include <iostream>int sum(int x, int y) { return x + y;}int main() { const int x ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
1$ hexo new "My New Post"
More info: Writing
Run server
1$ hexo server
More info: Server
Generate static files
1$ hexo generate
More info: Generating
Deploy to remote sites
1$ hexo deploy
More info: Deployment
黑群晖安装
群晖引导u盘制作
在安装黑群晖之前,我们还需要安装一个u盘刷写工具。在官网Rufus - 轻松创建 USB 启动盘进行下载与安装。
下载对应平台的版本即可,我这里下载的是第一个。下载完Rufus后,我们需要下载群晖引导镜像。下载连接:Releases · fbelavenuto/arpl (github.com)
下载第一个即可arpl-1.1-beta2a.img.zip。这个github仓库里有这个群晖引导的制作者提供的官方教程,英语比较好的小伙伴也可以参考其中的步骤来进行安装。fbelavenuto/arpl: Automated Redpill Loader (github.com)
完成上面的步骤后,将用于制作群晖引导的u盘插入电脑。我这里选用的是kioxia64G的u盘。注意,请不要使用存有重要文件的u盘。用于制作引导的u盘会被格式化。这里建议买一个新的u盘,因为引导盘会被一直插在你的nas主机上。
选择你插入的u盘。
选择你下载好的群晖镜像文件。
然后点击开始,等待制作完成。
刷写完成,群晖引导就制作成功了,然后拔出u盘。
群晖 ...
搭建个人博客
安装node.js
下载
进入到Node.js (nodejs.org),点击20.10.0 LTS,下载Node.js。
下载完成后,打开文件进行安装,全部使用默认配置即可。
验证
在命令行中输入如下命令,出现版本号即为安装成功。
这里推荐设置阿里的国内镜像,方便后续的下载。
1npm config set registry https://registry.npm.taobao.org
Hexo安装
新建一个用于存放博客的文件夹,我这里是E:\code\Blog。在这个文件夹内打开命令行。
安装hexo
1npm i hexo-cli -g
初始化,此处需要用管理员身份运行cmd,否则会报错。
12hexo init .npm install
初始化完成后,文件夹内的结构如下
然后依次输入
123456# 新建博客hexo new "博客名"# 生成静态网页hexo g# 打开本地服务器hexo s
可以看到,hexo 正在运行,点击下面的网址即可进入到自己搭建的博客中。http://localhost:4000/。
此时的博客部署在本地,只有本机能 ...