Ciao.
Potreste spiegarmi perche' diversi file header con lo stesso nome sono presenti in piu' di un posto nello stesso sistema?
Per esempio, ecco dove si trovano vari esemplari di stdio.h in ubuntu 20.4:
------------------------------------------
ciccio@ciccio-81mt:/usr$ find -name stdio.h
./include/x86_64-linux-gnu/bits/stdio.h
./include/c++/9/tr1/stdio.h
./include/stdio.h
-------------------------------------
I contenuti di questi file sono diversi, ho controllato.
Suppongo che quello realmente incluso nei codici c con la direttiva
#include<stdio.h>
sia /usr/include/stdio.h
A cosa servono gli altri? Da chi o da che cosa vengono usati e quando?
file header c multipli con lo stesso nome
-
- Prode Principiante
- Messaggi: 2
- Iscrizione: giovedì 9 marzo 2023, 12:51
- DoctorStrange
- Imperturbabile Insigne
- Messaggi: 2872
- Iscrizione: mercoledì 14 ottobre 2015, 9:33
- Desktop: Gnome3
- Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
- Sesso: Maschile
- Località: Roma, Italia
Re: file header c multipli con lo stesso nome
Di solito vari pacchetti e varie versioni di software, possono portarsi dietro diverse riscritture della medesima libreria. Ad esempio la glibc è famigerata per questo.
Assicurati di quanti pacchetti Debian tu abbia, assicurati che il risultato della ricerca siano veri pacchetti, e non dei semplici link ma, comunque ti renderai lo stesso conto che ce ne sono numerosi.
Per questo motivo, quando si compila un software, nel suo Makefile, bisognerebbe sempre usarel'FQDN (Full Qualified Domain Name) oppure, in alternativa, impostare il base path e, da li i percorsi di tutte le dipendenze
Assicurati di quanti pacchetti Debian tu abbia, assicurati che il risultato della ricerca siano veri pacchetti, e non dei semplici link ma, comunque ti renderai lo stesso conto che ce ne sono numerosi.
Per questo motivo, quando si compila un software, nel suo Makefile, bisognerebbe sempre usarel'FQDN (Full Qualified Domain Name) oppure, in alternativa, impostare il base path e, da li i percorsi di tutte le dipendenze
-
- Prode Principiante
- Messaggi: 2
- Iscrizione: giovedì 9 marzo 2023, 12:51
Re: file header c multipli con lo stesso nome
Grazie DoctorStrange.
In effetti, come dici tu, ho notato la presenza di librerie/headers che, a volte, sembrano un po' fuori luogo.
Ho fatto la stessa indagine sull'header stdio.h nell'estrazione di src.tar.gz e sys.tar.gz di openbsd (scaricabili dai mirror) e ho trovato tutti questi:
./include/stdio.h
./gnu/usr.bin/gcc/gcc/fixinc/tests/base/stdio.h
./gnu/llvm/libcxx/include/stdio.h
./gnu/gcc/fixincludes/tests/base/stdio.h
./gnu/gcc/libstdc++-v3/include/c_compatibility/stdio.h
./gnu/gcc/libstdc++-v3/include/tr1/stdio.h
./gnu/gcc/libssp/ssp/stdio.h
./gnu/lib/libstdc++/libstdc++/include/c_compatibility/stdio.h
./lib/libc/hidden/stdio.h
Sapendo che openbsd non usa glibc, forse tutto quel che si riferisce a gnu è lì per qualche pacchetto particolare che, in qualche momento, potrebbe richiederlo.
In effetti, come dici tu, ho notato la presenza di librerie/headers che, a volte, sembrano un po' fuori luogo.
Ho fatto la stessa indagine sull'header stdio.h nell'estrazione di src.tar.gz e sys.tar.gz di openbsd (scaricabili dai mirror) e ho trovato tutti questi:
./include/stdio.h
./gnu/usr.bin/gcc/gcc/fixinc/tests/base/stdio.h
./gnu/llvm/libcxx/include/stdio.h
./gnu/gcc/fixincludes/tests/base/stdio.h
./gnu/gcc/libstdc++-v3/include/c_compatibility/stdio.h
./gnu/gcc/libstdc++-v3/include/tr1/stdio.h
./gnu/gcc/libssp/ssp/stdio.h
./gnu/lib/libstdc++/libstdc++/include/c_compatibility/stdio.h
./lib/libc/hidden/stdio.h
Sapendo che openbsd non usa glibc, forse tutto quel che si riferisce a gnu è lì per qualche pacchetto particolare che, in qualche momento, potrebbe richiederlo.
Chi c’è in linea
Visualizzano questa sezione: Sargonsei e 5 ospiti