Segmentation fault怎么办

如果你的程序在运行的时候,出现了:

Segmentation fault

错误,怎么办。

让系统生成core dump文件,就是程序崩溃的信息。默认系统在程序崩溃的时候并不会生成core dump文件的,使用

ulimit -c unlimited

然后再运行的你的程序,你会发现此时输出不再是简单的

Segmentation fault

变成了

Segmentation fault(core dumped)

这就说明core dum更多... “Segmentation fault怎么办”

make: Warning: File ‘xxx’ has modification time xxxxx-xx s in the future

如果碰到这种错误,那是因为你的这些文件是从别的机器拷过来的,而别的机器的时钟要比你的机器的要快。

怎么解决这个问题呢?执行下面的命令

 

find . -exec touch {} \;

 

然后重新编译,记住所有的文件要重新编译。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

gcc: unrecognized option ‘-static-libstdc++’

如果你碰到这个错误

gcc: unrecognized option '-static-libstdc++'

那说明你的gcc的版本是低于4.5的,使用

gcc -v

查看版本号码

那怎么升级呢?卸载现有版本,再去gnu官网下载最新版本,然后编译

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

linux ELF文件格式

linux的可执行程序的格式ELF格式,ELF就是 Excutable and Linking Format的缩写。

每个ELF文件有个文件头,格式如下:

typedef struct
{
	unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */
	Elf32_Half	e_type;			/* Object file type */
	Elf32_Half	e_machine;		/
更多... “linux ELF文件格式”

linux编程必须掌握的几个命令

1. ldd

用法:

ldd myprogram

 

2. nm

用法:

nm myprogram

 

3. objdump

用法:

objdump -p myprogram

objdump -T myprogram

 

4. strings

用法:

strings myprogram

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

GCC静态链接glibc库

如果你的编译环境是高版本的glibc库,而运行程序的环境(机器)安装的glibc是低版本的话,在运行程序的时候,就会告诉你

cannot find GLIBC_2.14

类似这样的错误,上面的2.14根据你链接的glibc版本不同而变化。

 

怎么解决这个问题呢?就是将glibc进行静态链接。在使用gcc编译链接的时候,默认是采用动态链接的方式,如果要指定静态链接glibc库,则使用 

-s… 更多... “GCC静态链接glibc库”

vim中快速的定位函数或者类定义

vim中快速的定位函数或者类定义

 

请参看:

http://blog.360converter.com/archives/62

 

在Visual Studio在函数或者类定义之间切换,非常方便。vim也可以做到,只是多了一步骤。

 

就是使用

ctags

这个在linux上默认是没有安装的,为了测试是否已经安装,你可以在命令行运行这个命令。没有安装的话,安装它

 

debian… 更多... “vim中快速的定位函数或者类定义”