<p>kompilasi iperf 3 di Android gagal dengan kesalahan berikut.</p>

Dibuat pada 7 Mei 2016  ·  7Komentar  ·  Sumber: esnet/iperf

Memerintah:
./configure --host=arm-linux-gnueabihf --prefix=/home/ec2-user/iperf_install/ CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ CFLAGS=-static CXXFLAGS=- statis

main.c:62: error: referensi tidak terdefinisi ke '__gnu_mcount_nc'
main.c:124: error: referensi tidak terdefinisi ke '__gnu_mcount_nc'
main.c:131: error: referensi tidak terdefinisi ke '__gnu_mcount_nc'
cjson.c:50: kesalahan: referensi tidak terdefinisi ke '__gnu_mcount_nc'
kumpulkan2: kesalahan: ld mengembalikan 1 status keluar

Saya mencoba mengkompilasi biner iperf3 untuk Android. Saya sangat kecewa karena tidak ada informasi konkret untuk mengkompilasi biner iperf3 untuk android. Bisakah seseorang tolong bantu?

Terima kasih,
-Hardik

documentation portability

Komentar yang paling membantu

ATAU:
./configure --disable-profiling --host=arm-linux-androideabi

Semua 7 komentar

cjson.c:50: kesalahan: referensi tidak terdefinisi ke '__gnu_mcount_nc'
cjson.c:56: kesalahan: referensi tidak terdefinisi ke '__gnu_mcount_nc'
cjson.c:72: kesalahan: referensi tidak terdefinisi ke '__gnu_mcount_nc'
cjson.c:85: kesalahan: referensi tidak terdefinisi ke '__gnu_mcount_nc'

iperf3 tidak secara resmi mendukung Android dan kami tidak memiliki sumber daya untuk melakukan ini. Jadi menandai sebagai "membantu ingin".

Kami mencatat bahwa iperf2 secara resmi mendukung Android. Mungkin itu platform yang lebih cocok?

Saya menghadapi masalah yang sama, apakah ada saran untuk ini?

Saya telah mengganti skrip Konfigurasi dengan CMake untuk tujuan saya. Saya cukup yakin saya bisa mendapatkan kompilasi ini untuk Android, tetapi saat ini saya sedang mengkompilasi untuk iOS.

https://github.com/palmerc/iperf

[Memperbarui]

Menyetel 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 .

Bekerja. Saya juga menguji dengan -D ANDROID_ABI=arm64-v8a

Jika seseorang mau, saya dapat mengirimkan build CMake sebagai permintaan tarik

Atau, edit src/Makefile.in, hapus "-pg" dari iperf3_profile_CFLAGS dan iperf3_profile_LDFLAGS.

Berikut adalah tiga solusi untuk masalah ini, dalam urutan dari upaya paling sedikit hingga upaya paling banyak:

  1. Pada saat penautan iperf3 yang diprofilkan executable gagal, executable iperf3 "normal" mungkin sudah dibuat...setidaknya itu ada di sistem saya. Jadi, jika Anda bersedia menerima error exit dari proses make (dan sedikit kerja sia-sia pada host build), Anda mungkin tidak perlu melakukan apa pun.

  2. Setelah langkah configure , akan ada definisi di src/Makefile yang terlihat seperti ini:

noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
        iperf3_profile$(EXEEXT)

Jika Anda mengeditnya agar terlihat seperti ini, itu akan menonaktifkan build dari iperf3 yang diprofilkan:

noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
  1. Mirip dengan item 2 di atas, tetapi lebih permanen ... jika Anda mengedit src/Makefile.am dan mengubah bacaan baris seperti ini:
noinst_PROGRAMS         = t_timer t_units t_uuid iperf3_profile

Untuk terlihat seperti ini:

noinst_PROGRAMS         = t_timer t_units t_uuid

Dan kemudian jalankan ./bootstrap.sh , yang akan membuat ulang proyek Makefiles untuk membuat pengecualian dari iperf3 yang dapat dieksekusi yang diprofilkan secara permanen (dalam pohon sumber itu).

Pada titik ini saya cenderung hanya menulis ini sebagai item FAQ dan menutup masalah.

ATAU:
./configure --disable-profiling --host=arm-linux-androideabi

Apakah halaman ini membantu?
0 / 5 - 0 peringkat