基本的 Makefile 写法

寒假的作业是写一个操作系统。老师给我们的要求比较低,基本上是能看懂学长以前写过的代码就给及格,自己写的像样的基本上良以上了。当然一个学期蜻蜓点水地学了这点东西,写一个操作系统,能不能“操作”,还是个大问号呢。

参考书自然想到了于渊的《一个操作系统的实现》。目前基本上就是抄着大神的代码,然后改改变量名啥的。抄到第三章的时候,看起来以后还要继续编译好多次,所以就干脆写个 Makefile 偷懒。但是这 Makefile 我是需要写的时候就查,写完之后又忘。所以干脆自己写个文章记下来算了。

所以,这篇文章适合那些对 Makefile 有初步了解,但是不常用,需要找点线索来回忆的人(比如我)。如果是对 Makefile 一无所知的话,请 Google 之。

阅读全文

记一次 Nginx 安装编译过程

最近开始折腾 Nginx, 我想自己编译它来搭建一个服务器。

我使用的系统是 CentOS, 也就是说很多风格会与 Red Hat 很像。所以安装命令是 yum 而不是 Ubuntu 那些 Debian 系统的 apt-get. 编译之前需要安装一些东西,它们是 gcc, pcre, zlib, openssl, libxml2, libxslt, gd, GeoIP. 由于我想让 Nginx 有尽量多的功能,所以才要安装 libxml2, libxslt, gd, GeoIP 之类的东西。

首先 gcc 是 GNU Compiler Collection, 编译 Nginx 必须要用这个编译器。然后 pcre 全称是 Perl Compatible Regular Expression, Nginx 解析 URL 的时候需要用到。zlib 是 Nginx 用来压缩数据的。openssl 是 Open Secure Socket Layer. gd 是一个处理图像的库。而 GeoIP 似乎可以用来查询 IP 的地理位置。

取得管理员权限后,运行:

1
2
3
4
5
6
7
yum install gcc
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install libxml2 libxml2-devel libxslt libxslt-devel
yum install gd gd-devel
yum install GeoIP GeoIP-devel

阅读全文

Java 学习笔记之环境变量与所谓主函数

六月份看了一些 Java, 后来基本忘记了。现在又要重新捡回来……

好吧,首先是 JDK 的下载。先去下载一个 JDK 安装,之后设置环境变量 JAVA_HOME 为安装路径(安装路径下有个 bin 文件夹,这是识别安装路径的方法),比如我就是这样设置的:

C:\Program Files\Java\jdk1.6.0_21

然后设置环境变量 CLASSPATH一个点,加分号,再加上经常放 Java 的类文件的文件夹。如:

.;C:\Java\Classes

然后在 PATH加上

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

阅读全文