Compilation 从源代码构建Unix Top

Compilation 从源代码构建Unix Top,compilation,freebsd,Compilation,Freebsd,我正试图从FreeBSD 10.1版本(clang版本3.4.1)的源代码中构建top(1) 编译没有错误,但编译的二进制文件不起作用,错误如下: # top kvm_open: kvm_nlist: No such file or directory kvm_open: kvm_nlist: No such file or directory kvm_open: kvm_nlist: No such file or directory kvm_open: kvm_nlist: No such

我正试图从FreeBSD 10.1版本(clang版本3.4.1)的源代码中构建top(1)

编译没有错误,但编译的二进制文件不起作用,错误如下:

# top
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kernel: no symbol named `_cp_time'

什么是我的错误,如何使它工作?我在10.1-RELEASE和8.4-RELEASE下使用了3.6和3.7版本,使用了clang和gcc,结果相同。

看起来您使用的版本与您运行的FreeBSD版本不兼容

top(1)的源代码位于/usr/src/contrib/top中
Makefile glue位于/usr/src/usr.bin/top中,我想这是上游top中对FreeBSD的支持已经相当过时的迹象。这是很明显的,因为FreeBSD使用自己的fork


也许将您需要的特定功能从上游移植到FreeBSD版本会更容易,而不是相反?

是的,我知道
/usr/src/
,但它包含旧版本的Unix top-我正在尝试更新版本。从
/usr/src/usr.bin/top
构建可以很好地工作。如果标准顶部缺少一些内容,请查看不同版本之间的差异。此外,您还可以查看当前版本的top导入FreeBSD源代码树时在何处进行了哪些更改
# top
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kvm_open: kvm_nlist: No such file or directory
kernel: no symbol named `_cp_time'