Ubuntu 11.10: wo ist /usr/include/sys??? - ist nun /usr/include/linux

Harald Weidner hweidner-lists at gmx.net
Di Apr 17 18:30:04 UTC 2012


Hallo,

>Mag ja sein, aber das ist definitiv kein POSIX-Standard, dieser schreibt 
>nämlich lediglich /usr/include/sys vor, und kein  /usr/include/x86_64-linux-
>gnu!

POSIX schreibt weder das eine noch das andere vor.

POSIX besteht, abgesehen von Begriffsdefinitionen und Erklärungen,
aus zwei Teilen:
- der C API für die libc
- Kommandozeilentools und ihre Parameter

Im ersten Teil steht, welche Funktionen das API bieten muss, welche
Parameter diese haben, wie die Ergebnisse und Fehlermeldungen zu
interpretieren sind, und welche Header eingebunden werden müssen,
um die Funktionsdefinitionen zu bekommen. Daraus geht z.B. hervor,
dass man mit #include <sys/select.h> die Funktionsdefinition für
die select() Funktion der libc bekommt. Wie bzw. wo der Compiler
den Header findet, ist in POSIX nicht vorgeschrieben.

>Wenn ich über eine IDE wie beispielsweise Eclipse gehe, so wird 
>/usr/include/x86_64-linux-gnu nicht auf den Include-Pfad gesetzt.

Ich habe das mal mit Eclipse unter Ubuntu 12.04 ausprobiert: aus
dem Quelltext

#include <sys/types.h>
int main()
{
    return 0;
}

macht Eclipse CDT beim Build:

**** Build of configuration Release for project systest ****
make all 
Building file: ../systest.c
Invoking: GCC C Compiler
gcc -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"systest.d" -MT"systest.d"
-o "systest.o" "../systest.c"
Finished building: ../systest.c
Building target: systest
Invoking: GCC C Linker
gcc  -o "systest"  ./systest.o   
Finished building target: systest
**** Build Finished ****

Der Include-Pfad wird nicht angetastet. Ein Verzeichnis /usr/include/sys
gibt es auf meinem System nicht.


>Es ist nur dann nicht portabel, wenn gewisse Systeme den POSIX-Standard 
>ignorieren.

Abgesehen von oben gesagtem war Linux noch nie POSIX compliant und wird
es wahrscheinlich auch nie werden. ;-)

Dennoch, wenn du immer noch der Ansicht bist, dass Ubuntu hier etwas
falsch macht, steht es dir frei, einen Bug Report einzustellen. Precise
Pangolin wird in 1 1/2 Wochen released, für Bugfixes ist es noch nicht
zu spät.

Gruß, Harald



Mehr Informationen über die Mailingliste ubuntu-de