问题在Centos 6.5上静态编译Thrift 0.9.0

时间:2014-05-28 16:27:38

标签: static thrift centos6

我正在CentOS VM中静态编译Thrift 0.9.0二进制文件。我得到的问题是没有创建libthrift.a二进制文件。我正在使用一个流浪盒来运行centos: https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

一旦我进入流浪者盒子,我就会运行以下命令:

wget https://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz
tar -zxvf thrift-0.9.0.tar.gz
cd thrift-0.9.0
./configure --enable-static
make

这将运行,但我在系统上运行了一个find命令(sudo find / -name“* .a”)以查看是否有任何“.a”文件,并且唯一的文件是“libparse”。 “这似乎不对。根据我的理解,它应该是“libthrift.a”。

搜索config.log文件,它说它确实想要构建静态库:

configure:11944: checking whether to build static libraries
configure:11948: result: yes

查看日志文件中包含关键字“static”的更多位置,可以发现可能存在错误的潜在位置。

configure:9028: checking if gcc static flag -static works
configure:9056: result: no

configure:13915: checking if g++ static flag -static works
configure:13943: result: no

lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no

完整的日志文件位于:http://www.filehosting.org/file/details/449460/staticThriftErrorLog.rtf

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我能够生成libthrift.a文件。在为我的评论中提到的额外依赖项运行命令后,我忘了运行make命令。所以在执行make命令后,我在" thrift-0.9.0 / lib / cpp / .libs /"中找到了libthrift.a文件。有趣的是,即使在修复了依赖项之后,config.log仍然存在与gcc / g ++静态标志和静态编译器相同的潜在问题区域。

具体来说,依赖命令如下:

sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel.x86_64


编辑:在获得关于Jira票证的建议后,事实证明我使用的特定流浪盒导致了错误。使用他链接的VM,我能够使用提供的指令成功构建Thrift。 (Jira ticket https://issues.apache.org/jira/browse/THRIFT-2559