Ubuntu 11.10: wo ist /usr/include/sys??? - ist nun /usr/include/linux
Alexander Beck-Ratzka
alexander.beck-ratzka at aei.mpg.de
Do Apr 19 09:09:13 UTC 2012
On Tuesday 17 April 2012 18:30:04 Harald Weidner wrote:
> 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.
>
Bei mir funktioniert das aber über Eclipse nicht.
Liebe Grüße
Alexander
Mehr Informationen über die Mailingliste ubuntu-de