Iperf: Wie kompiliere ich iperf3 statisch?

Erstellt am 4. Apr. 2017  ·  5Kommentare  ·  Quelle: esnet/iperf

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

question

Hilfreichster Kommentar

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

Alle 5 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen