想给自己之前的日志库,加一个染色的功能
gcc 有一个自己的特性,叫 __thread,介绍可以看这里,https://gcc.gnu.org/onlinedocs…,是可以用来修饰一个全局变量,从而让这个全局变量在每个线程都有一份拷贝,例子如下:
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#inc…… 阅读全文
Tag Archives: 编译
gcc 链接时动态库和静态库的优先选择
老话题了,不过还是记一笔
先看文件
ModuleA.cpp
int add(int a, int b)
{
return a + b;
}
ModuleB.cpp
int minus(int a, int b)
{
return a - b;
}
Main.cpp
#include <stdio.h>
int add(int, int);
int minus(int , int);
int main()
{
printf("%d\n", add(…… 阅读全文
最简 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 的输出带着问号,就像这个样子
src/BusiObj.cpp: In member function ?.nt CBusiObj::DecodeUdp(int&, int&, const char*, int)?.
src/BusiObj.cpp:287: warning: format ?.d?.expects type ?.nt?. but argument 6 has type ?.ong unsigned int?
src/Busi…… 阅读全文
gcc 查看链接库路径
当我们想知道 gcc 在链接的时候使用了什么库的时候,可以使用这样的命令
$ gcc --print-file-name=librt.so
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64/librt.so
之前用过一次,今天再用的时候差点又忘了,简单记一下
阅读全文
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…… 阅读全文