linux

centos下安装llvm+clang

不知道从神马时候开始,llvm+clang 就进入了 me 的眼球,以前只知道有 gcc,有 vc++。llvm 是个编译器的 back-end,像 JVM 或是 .NET 的 CLR (公共语言运行时), clang 是编译器的 front-end,负责将 c、c++、objective-c、objective-c++ (objective-c 和 c++的混合) 编译成中间语言。 c++11/14 支持最好的两个编译器 gcc 和 clang,前者版本到了 4.8.2 (GCC),后者 3.4 (Clang)。gcc 是前辈,而 clang 是后起之秀,对于学习 c++14 来说更好的选择是 clang (完全支持 c++11 语言、库和 c++14 的所有草案)。

me 使用的是 centos 系统,使用赶脚很不爽,上面很多包没有安装是一方面,另一方面有些包的版本过低,如果自己安装的话,使用命令 $rpm -ql package 完全搜不到(安装信息),O__O"…。前面安装 GCC 4.8.1 如此,这次安装 llvm+clang 亦如此。

gcc命令

GCC说明

GCC 最初是 GNU C Compiler 的缩写,也就是最初是 c 编译器,后来演变成了 GNU Compiler Collection 的缩写,也就是成了一个编译器的集合。GCC 可以编译 c 、c++、、objective-c、objective-c++、java、pascal、ada 等语言,不过很多时候 me 们关心的是如何编译 c 和 c++。linux 主要是用 c 写的,其上的各种实用工具(比如各种命令)一般也是 c 写成的;而 GCC 最初也是用 c 写的,后来改用了 c++。

通常用 gcc 命令来编译 c 文件,用 g++ 命令来编译 c++ 文件。不过也可以使用 gcc 来编译 c++ 文件(链接 libstdc++ 库而不是 glibc 库)。下面主要是通过 gcc 命令来说明编译,g++ 的基本是一样的。

编译过程

假设现在有一个 hello.c 文件:

Tags: 

linux 常识

文件和目录

linux 的文件和目录对应于 windows 下的文件和文件夹。不过 linux 的文件又是个比较抽象的概念,凡是可以“读写”的东西都可以视为“文件”,所以目录也是一种特殊的“文件”,这一点在编程的时候可能体现的更多一点。

文件路径

windows 下的路径类似于 D:\projects\hello.c ,而 linux 的路径则类似于 /home/ant/projects/hello.c 。也就是 linux 下的路径均以 / 开始,这是根目录

Tags: 

vi使用

Linux 上终端(shell)下的文本编辑器主要有 nano、ed、vi (vim) 和 emacs,而 vi 和 emacs 可能是使用最多的两种。不过 vi 貌似是发行版中都有安装的,ed 也是,其他的可能需要自己安装,至少 me 使用的 centos 环境是如此。在终端中敲命令和写代码有时候方便些,比如说修改配置文件和启动或是关闭一个服务了等,不过有时候真的让人着急,O__O"…。搞开发的话还是 IDE 来的方便和实在些,如果上网的话,使用 lynx 简直是种折磨,me 们么必要和自己过不去。

vi 貌似有很多命令,可以做很多事,不过对于 me 来说,me 只需要知道如何打开一个文件、编辑文件和保存文件就可以了,暂时没有太多其他的需求。貌似 vi 有三种模式,不过对 me 来说只有两种,插入模式(编辑模式)和命令模式。插入模式就是可以上下左右移动光标,编辑文件;命令模式下敲命令,执行一些其他功能,比如保存、退出、开启语法高亮等。

Tags: 

centos下安装gcc-4.8.1

时代变更很快,也许 u 的 linux 内核版本还长期维护在 2.6.x,然而实际最新的稳定版本已经到了 3.9.4,gcc 版本恐怕很多人也如此。默认安装的 gcc 版本恐怕在 4.4.x 附近,实际上 gcc 4.8.1 已经出来了,gcc 4.9.0 也已经在开发中,O__O"…。升级 gcc 的主要原因可能不是性能的问题,而是为了支持最新的 c++ 标准 —— c++11;实际上 4.7.1 已经支持的不少勒,4.8.0 几乎全部支持,4.8.1 貌似除了“最小化的垃圾回收器和基于可达的内存泄漏检测”之外,其他的都已经支持,具体的可以看下官方的说明

Tags: 

centos安装以及环境配置

为神马玩 centos 呢?不是因为它的桌面环境好看,也不是因为它使用最简单,或是使用最麻烦,只是听说企业级服务器用的比较多而已。去官网下载的话,会有最小化安装,还有完整的 DVD iso 安装,me 选择最小化安装,因为它小,只有 200+ M,而完整的 DVD iso 貌似有 4+ G,O__O"…。再者,me 在虚拟机 VMware 中安装,因为手头机器不多,还有就是为了能方便在 windows 和 centos 之间来回切换。

最小化安装很快,十来分钟便装好了,不过安装后只有文本界面,也就是控制台或是终端界面(就是只能敲命令干活,O__O"…);不过一般还是再装个桌面环境吧,虽然 me 主要不是为了使用桌面环境,没有桌面环境就么法使用 chrome 这样的浏览器,对于学习或是工作效率来说,是大大的折扣。在虚拟机中安装的话,网络配置简单很多丫,在装了桌面环境之后,网络竟然连不上了,后来 google 了一个解决方案。

本篇文章会介绍,安装最小化版本之后,使用 yum 安装一般的工作环境,比如安装 gcc/g++、安装桌面环境、安装 chrome、安装 mongodb 和 nodejs 等。

Tags: 

linux基本命令

很早就开始玩 linux 了,算算的话,玩过 fedora、ubuntu、红旗(已经关门大吉)、opensuse、gentoo,现在是 centos。以前都太过于浅尝辄止,要么就是只玩下桌面环境,要么就是学习 c/c++ 开发,没有把它太当一个事。命令没有记住几个,系统管理完全不会。现在打算好好玩玩,主要是玩命令行,图形界面的话,主要就是上个网。下面是命令行操作的一些常用,或是基本的命令,罗列一下,以作纪念,O__O"…。

普通用户的命令提示符是 $,管理员(root)的命令提示是 # ,命令后面的 # 部分是注释

Tags: 

在windows/linux下搭建go开发环境

本篇博客主要是介绍在 windows 下搭建 go 开发环境,因为 linux 下相对 windows 甚至更方便一些 (really?);如果你是关心的是 linux 的安装,直接跳到 linux 下安装 go 吧。废话不多说,去 go 的官网,下载 go 的 windows 版本。有 zip 文件下载,直接解压缩使用,不用选择 msi 安装。或是你直接到 golang:windows下安装go

说点废话。me 为嘛选择 zip 而不是 msi 呢?相对来说,me 更喜欢绿色软件,解压之后基本就可以使用了,不过有个缺点就是,us 需要自己注册环境变量(相信对于程序猿来说介太 easy 了)。msi/exe 的工作之一就是解压缩,另一些就是自动添加某些环境变量,还可能就是往注册表中写入一些东西。好吧,me 喜欢 zip。

Tags: 

gentoo 内核升级

这是一个让人紧张的时代,不管是硬件还是软件,不管是应用还是系统,几乎都是三天一个小版本,五天一个大版本。近几个月而来,kernel 从 3.0 到 3.2 到 3.4 再到 3.6,然后现在 mainline 是 3.7,不久之后应该就 3.8 了吧。大家都很忙,忙着系统升级。本篇是记录 me 的安装 gentoo 后的第一次内核升级,从 3.4.9 到 3.5.7 。me 是在 vmware 虚拟机中装的 gentoo !

Tags: 

nginx 安装以及配置

  1. 简单介绍
  2. 安装以及运行
  3. 配置
  4. 平滑启动

介绍

Nginx 听说是很不错的 web 服务器、反向代理服务器和邮件代理服务器,特别对于高并发的应用比较合适。用它是因为它性能不错,当然还有个原因——配置和使用简单。

安装以及运行

Nginx 官网地址:http://nginx.org;下载,doc,或是 nginx wiki,都可以在官网上找到链接。

Tags: