编译tcprstat

2013-07-11  |  10:27分类:MySQL  |  标签:  |  

在RHEL6.1(Red Hat Enterprise Linux Server)上静态编译并不容易。tcprstat编译也有这个问题。

源码下载:tcprstat@Launchpad 命令:bzr branch lp:tcprstat

编译命令:./bootstrap && ./configure && make

如果顺利的话,就结束了。不过在我的发行版会报如下错误:

gcc -Wall -Werror -g -pthread -I../libpcap/libpcap-1.1.1/ -g -O2 -static -L../libpcap/libpcap-1.1.1/ \
-o tcprstat-static tcprstat_static-tcprstat.o tcprstat_static-functions.o tcprstat_static-capture.o \
tcprstat_static-process-packet.o tcprstat_static-local-addresses.o tcprstat_static-stats.o \
tcprstat_static-output.o tcprstat_static-stats-hash.o -lpthread -lpcap -L/usr/lib64/
ld: cannot find -lpthread
collect2: ld returned 1 exit status

经张新铭同学指点,发现在尝试静态编译时(-static),找不到pthread的链接库。pthread在Linux的glibc库中实现(NPTL),所以需要静态编译链接,则需要对应的glibc静态链接库。

查询这台机器对应的glibc版本为glibc-2.12-1.25.el6.x86_64(rpm -qa|grep glibc),那么也需要对应版本的静态链接库,在网上搜索对应的rpm包,并安装:

glibc-static-2.12-1.25.el6.x86_64.rpm
rpm -ivh glibc-static-2.12-1.25.el6.x86_64.rpm

问题解决。编译好的文件再src目录下:tcprstat tcprstat-static

在RHEL上静态链接库缺失导致编译失败的问题很常见,故记录之。

喜欢本文,那就收藏到:

6条评论 关于 “编译tcprstat”

  1. georgexsh 发表于: 七月 30th, 2013 23:37

    不会是rpmfind随便down一个吧
    rh官方仓库没有么

  2. admin 发表于: 八月 1st, 2013 16:14

    是的!!! 是不是很残酷?

  3. 黑枸杞苗 发表于: 九月 10th, 2013 10:09

    黑枸杞苗http://www.heigouqi.cn,QQ171565-8817,您好,能友情链接吗

  4. 编译tcprstat | multiprocess 发表于: 十一月 10th, 2013 16:56

    […] By orczhou […]

  5. 编译tcprstatMultiprocess | Multiprocess 发表于: 十一月 11th, 2013 14:44

    […] By orczhou […]

  6. 编译tcprstat | Multiprocess 发表于: 十一月 12th, 2013 00:39

    […] From: http://www.orczhou.com/index.php/feed/ […]


发表您的评论