我下载了代码(“bzr分支lp:tcprstat”以获取代码-总计1.5 MB),但是我无法对其进行编译。出现在tcprstat目录中的文件如下。我对传统的./configure、make、sudo make install和相当精通IT的技术非常熟悉。

解决问题(根据Mehmet的输入)。

从此页面http://xcb.freedesktop.org/dist/,我获得了这个
文件:

libpthread-stubs-0.3.tar.gz(2009年10月14日02:16 267K)

Ran ./configure, make, sudo make install.

该程序仍然无法编译,并出现相同的错误,但是
进一步谷歌搜索(“缺少centos pthread”)给了我此页面
https://www.centos.org/forums/viewtopic.php?t=3517
其中包含圣人建议
yum install glibc-static

(我用sudo做的)

EtVoilà。

感谢(并祝贺:-)),穆罕默德(Mehmet)收集了50点奖励积分。

ps Mehmet,您对Linux中的静态/动态链接有什么好的指南吗?

[问题的完整说明]

我对此并不懒惰(正如我们所说的那样,我正在下载本书),而且我尝试了许多automake,autoconf,make,aclocal,bootstrap的变体,但我很困惑。是的,我已经阅读了自述文件,但是作者似乎认为每个人都知道GNU工具链。到目前为止,我已在文章的底部详细介绍了我迄今为止最成功的工作。
Summary of best efforts (details at bottom)
chmod 755 ./bootstrap
./bootstrap <--- at this point more files appear in the directory
./configure // appeared to work fine
make        // errors -> /usr/bin/ld: cannot find -lpthread -lp,

如果有人可以告诉我如何编写该程序,我将不胜感激。

=========文件的初始列表=============
-rw-rw-r--. 1 pol pol    38 Jan 30 09:46 AUTHORS
-rw-rw-r--. 1 pol pol   926 Jan 30 09:46 bootstrap
-rw-rw-r--. 1 pol pol     0 Jan 30 09:46 ChangeLog
-rw-rw-r--. 1 pol pol  2643 Jan 30 09:46 configure.ac
-rw-rw-r--. 1 pol pol 35147 Jan 30 09:46 COPYING
drwxrwxr-x. 2 pol pol  4096 Jan 30 09:46 libpcap
-rw-rw-r--. 1 pol pol   922 Jan 30 09:46 Makefile.am
-rw-rw-r--. 1 pol pol   914 Jan 30 09:46 NEWS
-rw-rw-r--. 1 pol pol  2730 Jan 30 09:46 README
drwxrwxr-x. 2 pol pol  4096 Jan 30 09:46 src
-rw-rw-r--. 1 pol pol    81 Jan 30 09:46 TODO

=============尽力而为===============

运行./bootstrap
[pol@localhost tcprstat]$ chmod 755 bootstrap
[pol@localhost tcprstat]$ ./bootstrap
configure.ac:80: warning: AC_CONFIG_SUBDIRS: you should use literals
../../lib/autoconf/status.m4:1097: AC_CONFIG_SUBDIRS is expanded from...
configure.ac:80: the top level
configure.ac:80: warning: AC_CONFIG_SUBDIRS: you should use literals
../../lib/autoconf/status.m4:1097: AC_CONFIG_SUBDIRS is expanded from...
configure.ac:80: the top level
configure.ac:80: warning: AC_CONFIG_SUBDIRS: you should use literals
../../lib/autoconf/status.m4:1097: AC_CONFIG_SUBDIRS is expanded from...
configure.ac:80: the top level
configure.ac:31: installing './compile'
configure.ac:26: installing './install-sh'
configure.ac:26: installing './missing'
Makefile.am: installing './INSTALL'
src/Makefile.am: installing './depcomp'
configure.ac:80: warning: AC_CONFIG_SUBDIRS: you should use literals
../../lib/autoconf/status.m4:1097: AC_CONFIG_SUBDIRS is expanded from...
configure.ac:80: the top level
[pol@localhost tcprstat]$ ll
total 336

====运行./bootstrap之后的新文件列表
-rw-rw-r--. 1 pol pol  39001 Jan 30 10:27 aclocal.m4
-rw-rw-r--. 1 pol pol     38 Jan 30 10:27 AUTHORS
drwxr-xr-x. 2 pol pol   4096 Jan 30 10:27 autom4te.cache
-rwxr-xr-x. 1 pol pol    926 Jan 30 10:27 bootstrap
-rw-rw-r--. 1 pol pol      0 Jan 30 10:27 ChangeLog
lrwxrwxrwx. 1 pol pol     32 Jan 30 10:27 compile -> /usr/share/automake-1.13/compile
-rw-rw-r--. 1 pol pol   3039 Jan 30 10:27 config.h.in
-rwxrwxr-x. 1 pol pol 192216 Jan 30 10:27 configure
-rw-rw-r--. 1 pol pol   2643 Jan 30 10:27 configure.ac
-rw-rw-r--. 1 pol pol  35147 Jan 30 10:27 COPYING
lrwxrwxrwx. 1 pol pol     32 Jan 30 10:27 depcomp -> /usr/share/automake-1.13/depcomp
lrwxrwxrwx. 1 pol pol     32 Jan 30 10:27 INSTALL -> /usr/share/automake-1.13/INSTALL
lrwxrwxrwx. 1 pol pol     35 Jan 30 10:27 install-sh -> /usr/share/automake-1.13/install-sh
drwxrwxr-x. 2 pol pol   4096 Jan 30 10:27 libpcap
-rw-rw-r--. 1 pol pol    922 Jan 30 10:27 Makefile.am
-rw-rw-r--. 1 pol pol  24785 Jan 30 10:27 Makefile.in
lrwxrwxrwx. 1 pol pol     32 Jan 30 10:27 missing -> /usr/share/automake-1.13/missing
-rw-rw-r--. 1 pol pol    914 Jan 30 10:27 NEWS
-rw-rw-r--. 1 pol pol   2730 Jan 30 10:27 README
drwxrwxr-x. 2 pol pol   4096 Jan 30 10:27 src
-rw-rw-r--. 1 pol pol     81 Jan 30 10:27 TODO

然后,我运行./configure-看起来可以正常工作-没有错误。

然后,我尝试运行make并失败-显示错误。
mv -f .deps/tcprstat_static-stats-hash.Tpo .deps/tcprstat_static-stats-hash.Po
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
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make[2]: *** [tcprstat-static] Error 1
make[2]: Leaving directory `/mysql/tools/tcprstat/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mysql/tools/tcprstat'
make: *** [all] Error 2
[pol@localhost tcprstat]$

最佳答案

安装tcprstat

为了便于携带和易于使用,我们构建了一个静态链接的二进制文件,该二进制文件可以在64位平台上按原样下载和使用。当前没有安装机制,因此要使用tcprstat,您只需要

  • 下载statically linked 64-bit binary (version 0.3.1)
  • 将其移动到PATH中的目录中,例如/usr/bin
  • 重命名为tcprstat
  • 使用chmod + x使其可执行文件

  • 编译中

    也许您错过了./configure结尾的内容:
    sudo apt-get install libpcap-dev
    

    确保您已完成所有这些步骤而没有出现错误:
    bzr checkout lp:tcprstat
    cd tcprstat/
    sh bootstrap
    ./configure
    

    同时 check out this bug,可能会有所帮助。

    这是我有趣的history :),可能对您也有帮助:

    编译后,tcprstat/中的文件:

    这是我的操作系统信息:

    *这是DigitalOcean的VPS

    添加:

    尝试在安装前安装此库:
    sudo apt-get install libpthread-stubs0-dev
    

    10-07 16:44