Optimization 使用clang/llvm构建wget

Optimization 使用clang/llvm构建wget,optimization,clang,Optimization,Clang,我下载了wget的源文件,并试图用Clang编译它。我想配置链接时间优化(-flto)。起初,我只是尝试: ./configure CC=clang CFLAGS=-flto make 配置成功,但我无法运行make输出: /tmp/lto-llvm-4f0f02.o:ld temp.o:function\u do\u handshake:error:未定义对“rpl\u fcntl”的引用 和其他许多类似的错误,都是相同的格式(错误:未定义对xxx的引用) 所以我想我需要正确链接这些文件。在

我下载了wget的源文件,并试图用Clang编译它。我想配置链接时间优化(
-flto
)。起初,我只是尝试:

./configure CC=clang CFLAGS=-flto
make
配置成功,但我无法运行make输出:

/tmp/lto-llvm-4f0f02.o:ld temp.o:function\u do\u handshake:error:未定义对“rpl\u fcntl”的引用

和其他许多类似的错误,都是相同的格式(错误:未定义对xxx的引用)

所以我想我需要正确链接这些文件。在搜索答案后,我尝试了以下所有命令:

./configure CC=clang CFLAGS=-flto LDFLAGS=-flto
make
-----------------------------------------------
./configure CC=clang CFLAGS=-flto LDFLAGS="-fuse-ld=lld-4.0"
make
-----------------------------------------------
./configure CC=clang CFLAGS=-flto LDFLAGS="-fuse-ld=gold"
make
但我还是犯了同样的错误


我在Debian-9.5上运行这个。我缺少什么?

您还需要指定要使用的特定ar实用程序-默认的
ar
ranlib
生成
。一个不可用于链接的
文件(没有要使用的条目),因此对我来说这是有效的:

./configure CC=clang-4.0 CFLAGS=-flto AR=llvm-ar-4.0 RANLIB=llvm-ranlib-4.0
您可以只使用
llvm ar
,而不使用版本后缀,但是您需要确保
clang
ar
ranlib
版本匹配,否则会遇到其他错误