1、出现segmentation default的原因:这个内存区要么是不存在的,要么是受到系统保护的。
例如:char *p=null,之后直接使用p而并没有进行malloc,就会出现这种错误。
2、*.o文件打包成*.a静态链接库文件
- ar crv *.a *.o(可以多个*.o文件)
- 如果想把 *.o
附加到静态库*.a中,可以用q选项,即 ar q *.a 多个.o文件
3、windows下打开大的c++工程,source insight比较好用
4、make是linux下程序维护的工具:
- make的时候,自动搜索makefile、Makefile,可命名Makefile,这样保证ls的时候,它排在前面。
- Makefile的目标可以放到all里面,否则它会默认只更新第一个目标。
- make由两部分组成:依赖关系+规则(命令)。每个规则所在的行,必须以tab开头,非空格键。makefile中tab和空格是不同的。
- 摘自,http://www.chinaunix.net/old_jh/23/408225.html
objects = foo.o bar.o
all: $(objects)
$(objects): %.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
上面的例子中,指明了我们的目标从$object中获取,“%.o”表明要所有以“.o”结尾的目标,也就是“foo.o bar.o”,也就是变量$object集合的模式,而依赖模式“%.c”则取模式“%.o”的“%”,也就是“foo bar”,并为其加下“.c”的后缀,于是,我们的依赖目标就是“foo.c bar.c”。而命令中的“$<”和“$@”则是自动化变量,“$<”表示所有的依赖目标集(也就是“foo.c bar.c”),“$@”表示目标集(也就是“foo.o bar.o”)