0

在 NS-3 DCE(网络模拟器 3 直接代码执行)中,NS-3 版本 3.21 和 dce 版本 1.4,默认包含的二进制文件之一是 iperf。然而,这个版本的 iperf 是 2.0.5,而最新版本的 iperf 是 3.0.10。由于 iperf3 不向后兼容 iperf2,而且 iperf3 提供了一些有趣的新功能,如果我可以将 iperf3 与 NS-3 dce 一起使用会非常有帮助。

正如以下链接所解释的那样: http ://www.nsnam.org/docs/dce/release/1.1/manual/html/dce-user-newapps.html 有某些要求(如makefile中的标志)进行调整以生成可供 dce 使用的二进制文件。

但是我无法让它工作。我尝试更改 iperf3 附带的所有 3 个 Makefile(-fpic CFLAG 和 -pie -rdynmic LDFLAGS),但在尝试构建它时仍然出现错误:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/gcrt1.o : relocation R_X86_64_32S against '__libc_csu_fini' can not be used when making a shared object: recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/gcrt1.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [iperf3_profile] Error 1
make[2]: Leaving directory 

有谁知道该怎么做?

非常感谢任何帮助!

4

1 回答 1

-1

您可以按照本指南使用 libOS 构建 iperf3:

... 上述错误是由于 gcc 配置文件选项 ('-pg') 和 PIC 选项之间的兼容性差。

因为即使出现此错误,主二进制文件 (iperf3) 也是构建的,您可以在 (top)/src/.libs/iperf3 看到 iperf3 二进制文件。

DCE 构建似乎需要禁用 iperf3_profile 的构建。欢迎使用补丁 ;)

但是,由于缺少符号 (__h_errno_location),目前您无法运行 iperf3。这可以通过一块teto来解决。

于 2015-10-09T07:17:04.210 回答