动态链接库中的全局变量

想给自己之前的日志库,加一个染色的功能 gcc 有一个自己的特性,叫 __thread,介绍可以看这里,https://gcc.gnu.org/onlinedocs…,是可以用来修饰一个全局变量,从而让这个全局变量在每个线程都有一份拷贝,例子如下: #include <stdio.h> #include <unistd.h> #include <pthread.h> #inc……

阅读全文

最简 Makefile

依赖于 Makefile 的自动推导,可以写出非常简化的 Makefile,假设目录下有有 Number.cpp 的单个 cpp 文件,内含 main 函数,那么,Makefile 可以这样写 all: Number 是的,就一行,all 作为默认 target,Number 作为依赖,自动推导出依赖源文件 Number.c*,如果是 cpp,得到编译器 g++,如果是 c,得打编译器 cc,然……

阅读全文

手工编译 apache 的一些琐碎

压测的时候用到 apache ab,但是 ab 本身支持的并发最大 1000,过了报错,修改源码 support/ab.c 把这行注释掉 apr_err("apr_socket_recv", status); 但是编译的时候各种依赖,手工解决好烦,首先出来 undefined reference to apr 系列的函数,查到这里,http://hi.baidu.com/yang171892…,说了 col……

阅读全文

gcc 编译时动态静态库的问题

一般来说,动态静态库的问题,可以参考这个文章,http://blog.csdn.net/ast_224/a… gcc生成静态库和动态库 一、库文件简介 简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态……

阅读全文

gcc 编译选项顺序导致的找不到定义

在使用 gcc 或者 g++ 进行编译,并链接外部的库的时候,发现了一个问题,明明使用了 -L 参数对库文件指明了链接,但是依然出错,报找不到定义,后来问过小组的人,才知道 gcc 的编译选项也有讲究的,看到这里,http://blog.csdn.net/lonfee88/…: 对于C/C++编译而言,读取编译选项是按照从左到右的顺序执行的(注1)……

阅读全文

GCC “-fomit-frame-pointer”编译选项的含义

在 makefile 中看到这个编译选项,不太理解于是查了一下,相关的东西还不多,抄一下放在这里 首先这个文章,http://blog.csdn.net/byzs/arti…,讲的不错,挺清晰的: 优化你的软件时,发觉”-fomit-frame-pointer”这个选项还是蛮有用的。 GCC手册上面这么说: Don’t keep the frame pointer in a……

阅读全文