开发环境 -- 编译移植iperf-3.1.1到ARM / 编译iperf到安卓 / 编译iperf到centos7

参考:

http://blog.chinaunix.net/uid-730738-id-130438.html

http://tigerjibo.blog.51cto.com/7718010/1297332/

 

 

1.下载iperf-3.1.1 下载地址:http://download.csdn.net/detail/ivan804638781/9803894

 

2.arm-linux-gcc-4.4.3交叉编译环境搭建   

  参考:http://blog.csdn.net/ivan804638781/article/details/69223842

 下载地址:http://download.csdn.net/detail/ivan804638781/9803762

 

3.解压

 

4.

在当前目录iperf-3.1.1/下执行./configure --host=arm-none-linux-gnueabi,一直出错

configure: error: C compiler cannot create executables
See `config.log' for more details

参考:http://blog.csdn.net/zyxlinux888/article/details/6705486

明白需要在根目录下执行./文件路径/configure --host=arm-none-linux-gnueabi

编译成功

 

5.在*/iperf-3.1.1/src/下生成文件

 

 

注意:

    遇到显示iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory

解决办法:运行以下指令

 

cd /
find ./ | grep libiperf.so.0
echo $LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/local/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/libiperf.so.0
export LD_LIBRARY_PATH
iperf3 -s

 

参考文档:

http://blog.csdn.net/shmnh/article/details/52012093

 

 

 

编译安卓iperf

 

Android 移植之 iperf 1 .移植准备
1 ,源代码地址:
http://sourceforge.net/projects/iperf/files/iperf/2.0.4%20source/iperf-2.0.4.tar.gz/download


2 ,解压 tar –zxvf iperf-2.0.4.tar.gz

如果你只是生成x86下的可执行文件,那么执行 configure 然后make就可以了!你可以在src目录找到生成的可执行文件。如果需要生成目标板的可执行文件则继续下面的操作

解压 iperf-2.0.4.tar.gz ,并放到 Adroid_root/external
3.创建 Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
compat/Thread.c \
compat/error.c \
compat/delay.cpp \
compat/gettimeofday.c \
compat/inet_ntop.c \
compat/inet_pton.c \
compat/signal.c \
compat/snprintf.c \
compat/string.c

LOCAL_SRC_FILES += \
src/Client.cpp \
src/Extractor.c \
src/Launch.cpp \
src/List.cpp \
src/Listener.cpp \
src/Locale.c \
src/PerfSocket.cpp \
src/ReportCSV.c \
src/ReportDefault.c \
src/Reporter.c \
src/Server.cpp \
src/Settings.cpp \
src/SocketAddr.c \
src/main.cpp \
src/sockets.c \
src/stdio.c \
src/tcp_window_size.c \
src/gnu_getopt.c \
src/gnu_getopt_long.c \
src/service.c

LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
$(LOCAL_PATH)/include

LOCAL_CFLAGS += -O2

LOCAL_CFLAGS += -DHAVE_CONFIG_H

LOCAL_LDLIBS += -lpthread

LOCAL_SHARED_LIBRARIES := libc libm libcutils libnetutils

LOCAL_MODULE := iperf
#LOCAL_FORCE_STATIC_EXECUTABLE := true

#LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)

#LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED)

#LOCAL_MODULE_TAGS := eng user

include $(BUILD_EXECUTABLE)

4.先生成需要的头文件
./configure --host=arm


5.修改源码中的头文件:
把 compact/signal.c 里面的 #include "util.h"
改成 #include  “../include/util.h”
把 src/sockets.c 里面的 #include "util.h"
改成 #include  “../include/util.h”


6.编译 $cd Adroid_root
$source . build/envsetup.sh
$mmm external/iperf-2.0.4

备注:在第六步,你可以学到如何在Android源码中单独编译某一个目录! 那就是 mmm 命令!

不知道你有没有发现在Android中当你编译完成后在每个源文件所在目录下根本看不到对应的 *.o 文件。是没有吗?是被删除了吗?当然不是!去这里看看你就知道了:/home/cpp/r7_new/out/target/product/***/obj/EXECUTABLES

 

 

编译iperf到centos7:

参考:https://blog.csdn.net/qq_39574546/article/details/83446014

wget https://iperf.fr/download/source/iperf-2.0.9-source.tar.gz
 
tar xzvf iperf-2.0.9-source.tar.gz
 
cd iperf-2.0.9/
 
./configure
 
make && make install

公司生产的设备使用的centos7系统,但是没有gcc,所以只能在以上的基础上进行修改。

先在centos编译机上下载源码、解压、配置、编译

将生成的iperf工具拷贝到设备上运行。

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(开发环境,移植)