试图在Apache Thrift的源代码中在Fedora 23上构建the official git repository失败,而#34;找不到库...或者未处理的参数"错误讯息:
...
make[5]: Entering directory '/home/ssouth/Source/Apache Thrift/git-wip-us.apache.org/repos/asf/thrift/lib/cpp/test'
/bin/sh ../../../libtool --tag=CXX --mode=link g++ -Wall -Wextra -pedantic -g -O2 -std=c++11 -L/usr/lib64 -o Benchmark Benchmark.o libtestgencpp.la -lssl -lcrypto -lrt -lpthread
libtool: error: cannot find the library 'Thrift/git-wip-us.apache.org/repos/asf/thrift/lib/cpp/libthrift.la' or unhandled argument 'Thrift/git-wip-us.apache.org/repos/asf/thrift/lib/cpp/libthrift.la'
Makefile:1049: recipe for target 'Benchmark' failed
make[5]: *** [Benchmark] Error 1
make[5]: Leaving directory '/home/ssouth/Source/Apache Thrift/git-wip-us.apache.org/repos/asf/thrift/lib/cpp/test'
Makefile:947: recipe for target 'all' failed
...
但文件libthrift.la
已构建并存在于文件系统中。使用configure
选项重新启动--without-tests
并不起作用。如何正确构建Thrift?
答案 0 :(得分:2)
这是由于libtool
的限制:它无法正确处理路径名中的空格。在这里,您已将源代码放在“Apache Thrift”的子文件夹中,通过仔细阅读上面粘贴的输出,您可以看到文件夹名称在其包含的空间中被错误地破坏。
最简单的解决方案是重命名此文件夹以删除空格。之后,你需要运行
make distclean
./bootstrap.sh
确保在重新运行make
之前更新所有必需的文件。