命令:
./configure --host=arm-linux-gnueabihf --prefix=/home/ec2-user/iperf_install/ CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ CFLAGS=-static CXXFLAGS=-静止的
main.c:62: 错误:未定义对“__gnu_mcount_nc”的引用
main.c:124: 错误:未定义对“__gnu_mcount_nc”的引用
main.c:131: 错误:未定义对“__gnu_mcount_nc”的引用
cjson.c:50: 错误:未定义对“__gnu_mcount_nc”的引用
collect2: 错误: ld 返回 1 个退出状态
我正在尝试为 android 编译 iperf3 二进制文件。 我很失望,没有为android编译iperf3二进制文件的具体信息。 有人可以帮忙吗?
谢谢,
-哈迪克
cjson.c:50: 错误:未定义对“__gnu_mcount_nc”的引用
cjson.c:56: 错误:未定义对“__gnu_mcount_nc”的引用
cjson.c:72: 错误:未定义对“__gnu_mcount_nc”的引用
cjson.c:85: 错误:未定义对“__gnu_mcount_nc”的引用
iperf3 不正式支持 Android,我们没有资源来处理这个问题。 所以标记为“需要帮助”。
我们注意到 iperf2 正式支持 Android。 也许那可能是一个更合适的平台?
我面临同样的问题,有什么建议吗?
为了我的目的,我已经用 CMake 替换了配置脚本。 我很确定我可以为 Android 进行编译,但目前我正在为 iOS 进行编译。
https://github.com/palmerc/iperf
[更新]
设置 HAVE_ENDIAN 1
cmake -D ANDROID_PLATFORM=android-21 -G Ninja -D CMAKE_TOOLCHAIN_FILE=../android-ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake ../iperf
cmake --build 。
工作。 我还测试了 -D ANDROID_ABI=arm64-v8a
如果有人愿意,我可以将 CMake 构建作为拉取请求提交
或者,编辑 src/Makefile.in,从 iperf3_profile_CFLAGS 和 iperf3_profile_LDFLAGS 中删除“-pg”。
以下是针对此问题的三种解决方法,按照从最省力到最省力的顺序排列:
当 iperf3 配置文件的链接失败时,“正常”的 iperf3 可执行文件可能已经创建......至少它在我的系统上。 因此,如果您愿意接受从 make 过程中退出的错误(以及在构建主机上浪费的一点工作),您可能不需要做任何事情。
在configure
步骤之后, src/Makefile
中会有一个定义,如下所示:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
iperf3_profile$(EXEEXT)
如果您将其编辑为如下所示,它将禁用配置文件 iperf3 的构建:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
src/Makefile.am
并更改如下所示的行:noinst_PROGRAMS = t_timer t_units t_uuid iperf3_profile
看起来像这样:
noinst_PROGRAMS = t_timer t_units t_uuid
然后运行./bootstrap.sh
,这将重新生成项目 Makefiles 以排除已配置的 iperf3 可执行文件(在该源树中)。
在这一点上,我倾向于将其写为常见问题解答项目并关闭问题。
或者:
./configure --disable-profiling --host=arm-linux-androideabi
最有用的评论
或者:
./configure --disable-profiling --host=arm-linux-androideabi