0

我正在开发一个使用 Iperf 库来测量网络性能的 Android NDK 项目。应用程序在 Android 版本 4.x 之前运行完美。但在 Android 最新版本 5.x(Lollipop) 中无法运行,出现错误“错误:仅支持与位置无关的可执行文件 (PIE)。”。我正在使用 Eclipse Luna ,NDK12。如果有人对此有解决方案,请回复。提前致谢。

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

# Enable PIE manually. Will get reset on $(CLEAR_VARS). This
# is what enabling PIE translates to behind the scenes.
LOCAL_CFLAGS += -fPIE
LOCAL_LDFLAGS += -fPIE -pie

L_DEFS := -DHAVE_CONFIG_H -UAF_INET6
L_CFLAGS := $(L_DEFS)



L_COMMON_HDR := Condition.h gnu_getopt.h Locale.h Reporter.h Thread.h config.win32.h headers.h Mutex.h service.h util.h Extractor.h inet_aton.h report_CSV.h snprintf.h version.h gettimeofday.h List.h report_default.h SocketAddr.h \
Client.hpp Listener.hpp Server.hpp Timestamp.hpp delay.hpp PerfSocket.hpp Settings.hpp

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

L_COMMON_COMPAT := headers_slim.h error.c inet_ntop.c signal.c string.c gettimeofday.c inet_pton.c snprintf.c Thread.c delay.cpp

iperf_SOURCES := $(L_COMMON_HDR) $(L_COMMON_SRC) $(L_COMMON_COMPAT)

include $(CLEAR_VARS)

LOCAL_MODULE := iperf
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
LOCAL_MODULE_TAGS := tests eng
LOCAL_CFLAGS := $(L_CFLAGS)
LOCAL_SRC_FILES := $(iperf_SOURCES)
LOCAL_DISABLE_FORMAT_STRING_CHECKS := true
include $(BUILD_EXECUTABLE)`
4

0 回答 0