Liebe iperf3-Entwickler,
Ich möchte iperf3 in einem minimalen Dateisystem mit einem Linux-Kernel verwenden. Ich muss die Programme statisch kompilieren, um sie im Dateisystem zu verwenden. Ist es möglich, iperf3 statisch zu kompilieren?
Ich tat
$ ./configure --build = arm-none-linux-gnueabi --host = arm-none-linux-gnueabi CFLAGS = -static CXXFLAGS = -static
$ machen
Aber ich verstehe
/ src $ file iperf3
iperf3: ELF 64-Bit-LSB-ausführbare Datei, x86-64, Version 1 (SYSV), dynamisch verknüpft, Interpreter /lib64/ld-linux-x86-64.so.2, für GNU / Linux 2.6.32, BuildID [sha1] = 33df741e068aaf7a9ae8a24a6243de87c35c6ca5, nicht abgestreift
freundliche Grüße,
Jiahuan
./configure --enable-static --disable-shared; machen ; make install
Ich habe das schon lange nicht mehr versucht, aber das sieht nach der richtigen Antwort aus, danke @TheRealDJ!
Dies scheint nicht mehr zu funktionieren. Es erstellt die statische Bibliothek, jedoch nicht die ausführbaren Dateien.
Hallo,
Ich kann das bestätigen. Ich habe versucht, iperf3 als statische ausführbare Datei zu erstellen, aber es wird immer noch mit einigen Bibliotheken verknüpft:
❯ ldd ./iperf3
linux-vdso.so.1 (0x00006284def24000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00006284debef000)
libc.so.6 => /usr/lib/libc.so.6 (0x00006284dea29000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00006284dea24000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00006284dea02000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00006284def26000)
Build via: ./configure --enable-static --disable-shared
Das hat bei mir funktioniert:
./configure "LDFLAGS=--static" --disable-shared --without-sctp
make
make install
$ ldd iperf3
not a dynamic executable
Es steht auch in der Dokumentation: https://software.es.net/iperf/faq.html
Hilfreichster Kommentar
Das hat bei mir funktioniert:
Es steht auch in der Dokumentation: https://software.es.net/iperf/faq.html