随笔分类 - c
摘要:GCC Function instrumentation机制可以用来跟踪函数的调用关系,在gcc中对应的选项为“-finstrument-functions”。可查看gcc的man page来获取更详细信息。编译时如果为gcc加上“-finstrument-functions”选项,那在每个函数的入...
阅读全文
摘要:nm *.so | c++filtc++filt symblo
阅读全文
摘要:link时,若liba.a依赖libb.a,若这样写 -lb -la,则链接通不过,gcc有个选项:-Xlinker ,可以让gcc在链接时反复查找依赖库,用法 : gcc -shared -o libxx.so xx.o -L. -Xlinker "-(" -lb -la "-)" -Xlinke
阅读全文
摘要:对于so动态库及可执行文件,可以直接调用不带参数的strip (-s, 即--strip-all)去除大多数不必要的信息。因为so库非常标准,所以strip之后仍然可以进行完美的动态连接;而可执行文件已经进行了链接,所以也可以用strip进行完美的strip。对于静态库和目标文件(.o文件),不能直...
阅读全文
摘要:上句大多数时候(和平台有关)可以正确判断是否是以fPIC选项编译的,如果输出为空,基本可以表明不是以fPIC选项编译的,若有输出,基本上表明是以fPIC选项编译的。另外,由于静态库是多个目标文件的打包,所以最好把静态库解包之后再对每个目标文件进行判断,这样比较准确。 如果要用在动态库种,o文件和a文
阅读全文
摘要:一般情况下,编译的时候可能需要加 -g 选项,对于android ndk的-g选项添加请参见android类目下的另一篇文章。 以下文章中的__builtin_return_address() 宏,若要确认它是否在编译器源码中存在,可以在编译器源码中搜索 return_address, 若找到则可以
阅读全文
摘要:https://github.com/ruanyf/articles/blob/master/2015/2015-02-19-make.md 代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。 Make是最常用的构建工具,诞生于197
阅读全文
摘要:3 Kbuild文件 大部分内核中的Makefile都是使用Kbuild组织结构的Kbuild Makefile。这章将介绍Kbuild Makefile的语法。 对于Kbuild文件名来讲,Kbuild编译系统更倾向于使用"Makefile"这个名字,当然"Kbuild"也是可以用的。但如果"Ma
阅读全文
摘要:label只在函数内有效
阅读全文
摘要:http://stackoverflow.com/questions/105659/how-can-one-grab-a-stack-trace-in-cThere's backtrace(), and backtrace_symbols():From the man page:#include ...
阅读全文
摘要:--sysroot=dir 的作用 如果在编译时指定了-sysroot=dir 就是为编译时指定了逻辑目录。编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前面加上逻辑目录。 如此处我们指定 -sysroot=/home/shell.albert/tools
阅读全文
摘要:https://www.kernel.org/doc/Documentation/zh_CN/CodingStyleChinese translated version of Documentation/CodingStyleIf you have any comment or update to ...
阅读全文
摘要:http://blog.csdn.net/yrj/article/details/4924041、GCC的编译和安装2、预处理 #define 可以支持不定数量的参数。 例子如下: #define err(...) fprintf(stderr,__VA_ARGS__) err("%s,%d/r/n...
阅读全文
摘要:的
阅读全文
摘要:; 1.前言 在gcc编程中,我们比较经常用到的字符格式化输出函数是printf的,实际上gcc继承了c语言处理字符具有强大功能的风格,它提供了一系列的格式化输出函数,主要存在两个库函数文件stdio.h/stdarg.h中,具体函数如下:#includeprintf,intprintf(cons...
阅读全文
摘要:黄中华总结: 其实IO操作就分为4种: blocking, non blocking, multiplexing, Asynchronous, 即 阻塞,非阻塞,多路复用,异步。 最好别提同步的概念,迄今为止同步的意思基本等同于阻塞。下面的文章给除了这4种io的最好的解释。 转: http://bl
阅读全文
摘要:What you need to do is edit the configure file. And find out this:SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBV...
阅读全文
摘要:据http://bbs.chinaunix.net/thread-2300778-1-1.html的讨论,发现还是有很多人在问通用Makefile的问题,这里做一个总结。也作为以后的参考。 笔者在写程序的时候会遇到这样的烦恼:一个项目中可能会有很多个应用程序,而新建一个应用程序则所有的Makefil
阅读全文
摘要:$@ $@ is the name of the target. $? The $? macro stores the list of dependents more recent than the target (i.e., those that have changed since the la
阅读全文