编译相关

1. GCC裁剪文件大小

GCC默认把调试信息放到可执行文件中,可以将这些内容分离,减少文件大小,加快打包时间。

  • objcopy –only-keep-debug project project.dbg //拷贝出一个符号表文件
  • objcopy –strip-debug project     //移除调试信息
  • objcopy –add-gnu-debuglink= project.dbg project //添加调试信息链接

 2. 调试时只需要加上路径

gdb –e project –s project.dbg

结合crash信息找到具体函数位置:

1) info address

2) info line *(0x...)

3. 通过graphviz获得CMake文件编译的整个库之间的关系,从而分析错误的库依赖

1) 编译配置调整

 cmake -D UT_TEST=ON -D CMAKE_BUILD_TYPE=DEBUG    ${cmakefile_dir} --graphviz=dependencies/graph

2) 会生成一系列的库依赖文件,为了看起来简单可以利用graphviz的图形工具查看

http://www.graphviz.org/Download_windows.php

3) 找到循环依赖,参考下面文档

http://blog.jasonantman.com/2012/03/python-script-to-find-dependency-cycles-in-graphviz-dot-files/

4. 编译加速

CCache

https://www.ibm.com/developerworks/cn/linux/l-ccache.html

 

posted on 2016-12-31 19:47  随性随行  阅读(147)  评论(0)    收藏  举报