编译安装GCC 5.2.0

2015.08.28发布于笔记暂无评论#CentOS#gcc#install

记录编译GCC 5.2.0时遇到的问题和解决方法,以备日后查询。

平时使用的服务器是CentOS5,自带的gcc编译器还是8年前发布的4.1.2版本,完全没法写C++11的代码,因为不想升级操作系统,只好自己下载源码编译。

安装过程挺dan疼的,只好记录下来。

安装依赖库

GCC依赖于gmp 4.2+, mpfr 2.4+和mpc 0.8+,这里直接下载安装最新的版本。

继续阅读...

输出并解析C++的调用堆栈

2014.04.25发布于研究暂无评论#call_stack#debug#gcc#linux#sigsegv

本文简要介绍在Linux上输出和解析C++的call stack的方法。

开发环境:

* 编译器: gcc 4.8.2
* 操作系统: Ubuntu 14.04 x86_64

输出调用堆栈

glibc中提供了backtrace()backtrace_symbols()两个函数来输出和解析程序的call stack,详情见man backtrace

继续阅读...

GCC/G++快速使用指南

2013.08.25/2014.01.28发布于笔记暂无评论#gcc#教程#未完成

使用一个例子介绍GCC/G++的编译选项。

准备工作

以debian6为例,安装必要的软件包。

apt-get install build-essential

另外,在下面的例子中为了展示gcc的-L和-l选项,使用了mysql库,因此需要安装mysql-dev软件包

继续阅读...

GCC相关的环境变量

2013.08.25/2015.05.20发布于笔记暂无评论#c++#config#gcc

介绍GCC在编译阶段和程序运行阶段用到的环境变量。

GCC编译时用到的环境变量

GCC编译时用到的变量。

C_INCLUDE_PATH

GCC编译时查找头文件的目录列表。比如:

继续阅读...

编译器内建宏

2013.08.25发布于笔记暂无评论#c++#compiler#gcc#note

介绍msvc和gcc4的内建宏(predefined macros)。

MSVC

详细的VS2012编译器内建宏可参考该页面

编译器版本

_MSC_VER         MSVC编译器版本
_MSC_VER = 1600  MS VC++ 10.0  
_MSC_VER = 1500  MS VC++ 9.0   
_MSC_VER = 1400  MS VC++ 8.0   
_MSC_VER = 1310  MS VC++ 7.1   
_MSC_VER = 1300  MS VC++ 7.0   
_MSC_VER = 1200  MS VC++ 6.0   
_MSC_VER = 1100  MS VC++ 5.0   
继续阅读...