Build nethogs
-
Ajout des architecture :
# dpkg --add-architecture arm64 # dpkg --add-architecture armhf # apt install libudev-dev:armhf -
Ajout de :
# apt-get install gcc-arm-linux-gnueabihf -
Oups :
apt-get install -y gcc-arm-linux-gnueabihf apt-get install -y libncurses-dev apt-get install -y libqt4-dev pkg-config apt-get install -y u-boot-tools apt-get install -y device-tree-compiler apt-get install g++-arm-linux-gnueabihf -
Ajout de la librairie :
# apt-get install libpcap-dev:armhf -
Modification de src/MakeApp.mk :
CFLAGS?=-Wall -Wextra CXXFLAGS?=-Wall -Wextra -Wno-missing-field-initializers -std=c++14 CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ OBJS=packet.o connection.o process.o decpcap.o cui.o inode2prog.o conninode.o devices.o -
Ajout d’une librairie :
# apt-get install libncurses-dev:armhf -
Supression de Test dans le MakeFile :
# make make -C src -f MakeApp.mk decpcap_test make[1]: Entering directory '/home/farias/nethogs/src' arm-linux-gnueabihf-gcc -Wall -Wextra -c decpcap.c arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 decpcap_test.cpp decpcap.o -o decpcap_test -lpcap -lm make[1]: Leaving directory '/home/farias/nethogs/src' make -C src -f MakeApp.mk test make[1]: Entering directory '/home/farias/nethogs/src' for test in ; do echo $test ; ./$test ; done make[1]: Leaving directory '/home/farias/nethogs/src' make -C src -f MakeApp.mk nethogs make[1]: Entering directory '/home/farias/nethogs/src' arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c packet.cpp In file included from /usr/arm-linux-gnueabihf/include/sys/types.h:25, from /usr/arm-linux-gnueabihf/include/net/ethernet.h:24, from packet.h:27, from packet.cpp:23: /usr/arm-linux-gnueabihf/include/features.h:194:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp] 194 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" | ^~~~~~~ arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c connection.cpp arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c process.cpp arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c cui.cpp -DVERSION=\"0.8.8-12-g08daf76\" arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c inode2prog.cpp arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c conninode.cpp arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 -c -o devices.o devices.cpp arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 main.cpp packet.o connection.o process.o decpcap.o cui.o inode2prog.o conninode.o devices.o -o nethogs -lpcap -lm -lncurses -DVERSION=\"0.8.8-12-g08daf76\" make[1]: Leaving directory '/home/farias/nethogs/src' -
Cela semble bon :
# elf-arch src/nethogs arm -
Et au niveau des librairies :
# ldd src/nethogs not a dynamic executable -
Binaire à tester …
-
Ma VM pour le Build en Cross-Compilation :
# hostnamectl Static hostname: pe1800 Icon name: computer-vm Chassis: vm Machine ID: 9a320e1fe1f8472d9470d8034e2d16c7 Boot ID: d46a092ade414ab1bcfd7626fb72440f Virtualization: kvm Operating System: Ubuntu 22.04.5 LTS Kernel: Linux 5.15.0-157-generic Architecture: x86-64 Hardware Vendor: QEMU Hardware Model: Standard PC _i440FX + PIIX, 1996_ -
Erreur :
./nethogs: error while loading shared libraries: libpcap.so.0.8: cannot open shared object file: No such file or directory -
Changement dans le Makefile de -lpcap par -static -L/usr/lib/arm-linux-gnueabihf/libpcap.a :
arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 decpcap_test.cpp decpcap.o -o decpcap_test -static -L/usr/lib/arm-linux-gnueabihf/libpcap.a -lm /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_fillhandle': decpcap.c:(.text+0x40): undefined reference to `pcap_datalink' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_open_offline': decpcap.c:(.text+0xe6): undefined reference to `pcap_open_offline' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_open_live': decpcap.c:(.text+0x13c): undefined reference to `pcap_open_live' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x15e): undefined reference to `pcap_lookupnet' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x170): undefined reference to `pcap_compile' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x184): undefined reference to `pcap_geterr' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x1a2): undefined reference to `pcap_setfilter' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x1b6): undefined reference to `pcap_geterr' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_stats': decpcap.c:(.text+0x23a): undefined reference to `pcap_stats' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.c:(.text+0x252): undefined reference to `pcap_geterr' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_dispatch': decpcap.c:(.text+0x6ae): undefined reference to `pcap_dispatch' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_setnonblock': decpcap.c:(.text+0x6d6): undefined reference to `pcap_setnonblock' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: decpcap.o: in function `dp_geterr': decpcap.c:(.text+0x6f2): undefined reference to `pcap_geterr' -
Build en mode static :
nethogs: main.cpp nethogs.cpp $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) main.cpp $(OBJS) -o nethogs -static -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" nethogs_testsum: nethogs_testsum.cpp $(OBJS) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) nethogs_testsum.cpp $(OBJS) -o nethogs_testsum -static -lpcap -lm ${NCURSES_LIBS} -DVERSION=\"$(VERSION)\" decpcap_test: decpcap_test.cpp decpcap.o $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) decpcap_test.cpp decpcap.o -o decpcap_test -static -lpcap -lmErreur :
# make make -C src -f MakeApp.mk decpcap_test make[1]: Entering directory '/home/farias/nethogs/src' arm-linux-gnueabihf-gcc -Wall -Wextra -c decpcap.c arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 decpcap_test.cpp decpcap.o -o decpcap_test -static -lpcap -lm /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoaddrinfo': (.text+0x56): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoaddr': (.text+0x2): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametonetaddr': (.text+0xbc): warning: Using 'getnetbyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoproto': (.text+0x380): warning: Using 'getprotobyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(pcap-dbus.o): in function `dbus_write': (.text+0xe4): undefined reference to `dbus_message_demarshal' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0xf4): undefined reference to `dbus_connection_send' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0xfc): undefined reference to `dbus_connection_flush' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x102): undefined reference to `dbus_message_unref' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x140): undefined reference to `dbus_error_free' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(pcap-dbus.o): in function `dbus_read': (.text+0x180): undefined reference to `dbus_connection_pop_message' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x190): undefined reference to `dbus_connection_pop_message' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x19c): undefined reference to `dbus_connection_read_write' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x1f0): undefined reference to `dbus_message_is_signal' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x1fe): undefined reference to `dbus_message_marshal' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x23e): undefined reference to `dbus_free' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(pcap-dbus.o): in function `dbus_cleanup': (.text+0x294): undefined reference to `dbus_connection_unref' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(pcap-dbus.o): in function `dbus_activate': (.text+0x30e): undefined reference to `dbus_connection_open' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x31e): undefined reference to `dbus_bus_register' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3ac): undefined reference to `dbus_bus_add_match' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3b2): undefined reference to `dbus_error_is_set' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3c4): undefined reference to `dbus_bus_get' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3da): undefined reference to `dbus_error_free' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3e8): undefined reference to `dbus_bus_add_match' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x3ee): undefined reference to `dbus_error_is_set' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x414): undefined reference to `dbus_error_free' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x420): undefined reference to `dbus_connection_unref' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x44a): undefined reference to `dbus_bus_get' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x47a): undefined reference to `dbus_error_free' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x484): undefined reference to `dbus_connection_set_max_received_size' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x492): undefined reference to `dbus_connection_unref' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x4e2): undefined reference to `dbus_error_free' collect2: error: ld returned 1 exit status make[1]: *** [MakeApp.mk:35: decpcap_test] Error 1 make[1]: Leaving directory '/home/farias/nethogs/src' make: *** [Makefile:46: decpcap_test] Error 2 -
Ajout de :
# apt-get install libnss3*:armhf -
Pas mieux :
# make make -C src -f MakeApp.mk decpcap_test make[1]: Entering directory '/home/farias/nethogs/src' arm-linux-gnueabihf-gcc -Wall -Wextra -c decpcap.c arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 decpcap_test.cpp decpcap.o -o decpcap_test -static -lpcap -lm -Wl,--start-group -lc -lnss_files -lnss_dns -lresolv -Wl,--end-group /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lnss_files: No such file or directory /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lnss_dns: No such file or directory collect2: error: ld returned 1 exit status make[1]: *** [MakeApp.mk:35: decpcap_test] Error 1 make[1]: Leaving directory '/home/farias/nethog -
Ajout emulateur :
apt install gcc-arm-linux-gnueabihf qemu-user -
Ajout de :
apt install musl -
Configuration OS :
# pkg-config --modversion dbus-1 1.12.20 # pkg-config --libs --static dbus-1 -ldbus-1 -lsystemd -
Pas mieux avec :
pkg-config --libs --cflags dbus-1# make make -C src -f MakeApp.mk decpcap_test make[1]: Entering directory '/home/farias/nethogs/src' arm-linux-gnueabihf-gcc -Wall -Wextra -c decpcap.c arm-linux-gnueabihf-g++ -Wall -Wextra -Wno-missing-field-initializers -std=c++14 decpcap_test.cpp decpcap.o -o decpcap_test -static -static-libgcc -static-libstdc++ -ldbus-1 -lpcap -lm -Wl,--start-group -lc -lresolv -Wl,--end-group `pkg-config --libs --cflags dbus-1` /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libdbus-1.a(libdbus_1_la-dbus-sysdeps-unix.o): in function `fill_user_info': (.text+0x1d6): warning: Using 'getgrouplist' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x13a): warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0xf6): warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoaddrinfo': (.text+0x56): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoaddr': (.text+0x2): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametonetaddr': (.text+0xbc): warning: Using 'getnetbyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libpcap.a(nametoaddr.o): in function `pcap_nametoproto': (.text+0x380): warning: Using 'getprotobyname_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: /lib/arm-linux-gnueabihf/libdbus-1.a(libdbus_1_la-dbus-sysdeps-unix.o): in function `_dbus_listen_systemd_sockets': (.text+0x15d0): undefined reference to `sd_listen_fds' /usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin/ld: (.text+0x15ee): undefined reference to `sd_is_socket'
Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.
Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.
Grâce à votre participation, ce message peut devenir encore meilleur 💗
S'inscrire Se connecter