c++ 学习总结

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”)

你可能感兴趣的:(c++ 学习总结)