๋ช
๋ น:
./configure --host=arm-linux-gnueabihf --prefix=/home/ec2-user/iperf_install/ CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ CFLAGS=-์ ์ 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 ์ข
๋ฃ ์ํ๋ฅผ ๋ฐํํ์ต๋๋ค.
์๋๋ก์ด๋์ฉ iperf3 ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ปดํ์ผํ๋ ค๊ณ ํฉ๋๋ค. ์๋๋ก์ด๋์ฉ 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๋ฅผ ์ง์ํฉ๋๋ค. ์๋ง๋ ๊ทธ๊ฒ์ด ๋ ์ ํฉํ ํ๋ซํผ์ด ์๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค. ์ด์ ๋ํ ์ ์์ด ์์ต๋๊น?
๋ด ๋ชฉ์ ์ ์ํด Configure ์คํฌ๋ฆฝํธ๋ฅผ CMake๋ก ๊ต์ฒดํ์ต๋๋ค. Android์ฉ์ผ๋ก ์ปดํ์ผํ ์ ์๋ค๊ณ ํ์ ํ์ง๋ง ํ์ฌ iOS์ฉ์ผ๋ก ์ปดํ์ผํ๊ณ ์์ต๋๋ค.
https://github.com/palmerc/iperf
[์ ๋ฐ์ดํธ]
HAVE_ENDIAN 1 ์ค์
cmake -D ANDROID_PLATFORM=android-21 -G ๋์ -D CMAKE_TOOLCHAIN_FILE=../android-ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake ../iperf
cmake -- ๋น๋ .
์ผํ๋ค. ๋๋ ๋ํ -D ANDROID_ABI=arm64-v8a๋ก ํ ์คํธํ์ต๋๋ค.
๋๊ตฐ๊ฐ ์ํ๋ฉด CMake ๋น๋๋ฅผ pull ์์ฒญ์ผ๋ก ์ ์ถํ ์ ์์ต๋๋ค.
๋๋ iperf3_profile_CFLAGS ๋ฐ iperf3_profile_LDFLAGS์์ "-pg"๋ฅผ ์ญ์ ํ์ฌ src/Makefile.in์ ํธ์งํฉ๋๋ค.
๋ค์์ ์ด ๋ฌธ์ ์ ๋ํ ์ธ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
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 ์คํ ํ์ผ์ ์๊ตฌ์ ์ผ๋ก ์ ์ธํ๊ฒ ๋ฉ๋๋ค(ํด๋น ์์ค ํธ๋ฆฌ ๋ด์์).
์ด ์์ ์์ ๋๋ ์ด๊ฒ์ FAQ ํญ๋ชฉ์ผ๋ก ์์ฑํ๊ณ ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
๋๋:
./configure --disable-profileing --host=arm-linux-androideabi
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋:
./configure --disable-profileing --host=arm-linux-androideabi