logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

使用gcc展示完整的编译过程(gcc预处理模式、编译模式、汇编模式、连接模式)

最近在了解 clang/llvm 的时候突然发现一件事:gcc是一个工具集合,包含了或者调用将程序源代码转换成可执行程序文件的所有工具,而不只是简单的编译器。这帮助我对“编译器”有了更深刻的理解,所以写下本文作为记录。从源代码转换成可执行程序的完整过程,也就是我们平时所说的“编译过程”,实际如下(圆角矩形表示代码,矩形表示各种处理器)可以看到从源代码到可执行程序要经过预处理器(preprocess

文章图片
如何使用Jekyll在GitHub Pages上搭建网站(个人博客)

Jekyll 是一个基于 Ruby 语言的,用于搭建静态网站的生成器,主要用于搭建博客网站(官方自己的介绍为:Jekyll is a blog-aware, static site generator in Ruby)。但是虽然是静态网站,但是可以实现一些使用数据库的动态网站的效果和功能,是很不错的一个框架。。虽然 Jekyll 官网提供了教学,GitHub 也提供了教学,但是二者需要交叉起来看,

#github#前端
如何在C/C++中测量一个函数或者功能的运行时间(串行和并行,以及三种方法的实际情况对比)

本文算是一个比较完整的关于在 C/C++ 中测量一个函数或者功能的总结,最后会演示三种方法的对比。最常用的clock()最常用的测量方法是使用clock()来记录两个 CPU 时间点clock_t,然后做差。这个方法的好处在于非常简单易写,timespec。clock_gettime()的参数CLOCK_REALTIME表示系统层面的实时时间;这个地方还可以用CLOCK_MONOTONIC,这个值

文章图片
#c语言#c++
如何解决git clone http/https仓库失败(403错误)

一般情况下,个人使用 GitHub 等平台时是使用 SSH 协议的,这样不光方便管理可访问用户,也保证了安全性。但是 GitHub 上仓库的 SSH 地址是要登陆才能看到,未登录情况下只能看到 HTTPS 地址,所以很多项目在传播的时候贴出来的是 HTTPS 链接,以及子模块(submodule)也都使用的是 HTTPS。本来不打算写这篇文章,但是后来又遇到这个问题忘了之前是怎么解决的了。其他的错

#git
Github账户开启双重验证(two-factor authentication)

给Xcode添加GitHub账户的时候一直显示Authentication Failed,如下:看了眼苹果文档:这里看一下步骤4:如果你设置了双重验证,遵循该指导来完成验证。下面的Notes说的是:去GitHub官网,编辑安全设置,设置双重验证。但是设置双重验证没那么简单,GitHub官方教程是这个:https://docs.github.com/en/github/authenticating-

#github
C语言中函数main的参数argc和argv是什么

我的意思“程序运行时,会自动将从输入的获取的字符串分割成多个字符串,然后将这些字符串存放在 argv 数组,数组中最后一个元素被存放为空指针。但是一般情况下,如果单独说“argv”,指的是数组的指针。是一个存放字符类型元素地址的数组,因为 C 中是有字符串的概念的:将每个字符存放在 char 数组,最后一个元素为。是一个指向一个字符串数组的指针,数组包含了参数,每个字符串就是一个参数,最后一个元素

#c语言
clang到底是什么?gcc和clang到底有什么区别?

如果你上网去查clang,有些人会告诉你这是一个前端(frontend),然后从书上摘抄一些编译器的介绍,然后列出了一堆表格进行对比,并没有对原理和机制进行详尽的解释和介绍。所以这时候会有更多的问题冒出来:为什么clang是一个前端?难道它不是完整的编译器吗?如果clang是完整的编译器的话,那么为什么叫前端呢?如果它不是完整的,那么后端是什么呢?编译器的定义到底是什么?感觉书上编译器的定义和实际

文章图片
在bash或脚本中,如何并行执行命令或任务(命令行、parallel、make)

最近要批量解压归档文件和压缩包,所以就想能不能并行执行这些工作。因为tar自身不支持并行解压,但是像make却可以支持生成一些文件,所以我才有了这种想法。方法有两种,第一种不用安装任何软件或工具,直接bash或其他 Shell 中就可以使用;第二种需要安装 GNU parallel 这个工具来进行。二者在使用上都很简单,但是后者更人性化(应该可以用这个词来形容)一些。最后还介绍了一种比较奇特的方法

文章图片
#bash
GunPG使用教程(含密钥生成删除以及文件加密解密签名)

GunPG是一个开源免费的加密解密的GPG软件,使用命令行,在Windows、Linux、macOS、Android等平台上都有。如果Mac平台需要可视化的操作方式,那么可以使用GPGTools,是一款收费的商业软件,官网地址是:https://gpgtools.org继续介绍GunPG,这里先列一下GunPG官网:https://www.gnupg.org,包含各种版本的GunPG以及使用手册。

如何在macOS终端Terminal上配置Java开发环境(官网下载的Java没有javac或者报错The operation couldn’t be completed)

但是万万没想到,被官网给坑了一次,下载的 Java 不能正常开发。如果你直接在官网(如下)点击“下载 Java”,那么下载的 Java 只能运行程序,而不能编译程序,也就是说开发者下了没有用。The operation couldn’t be completed. Unable to locate a Java Runtime that supports javac.

文章图片
#java#macos
暂无文章信息