Discussion:
Umgebungsvariable für Include
(zu alt für eine Antwort)
Philipp Kraus
2009-06-09 09:07:39 UTC
Permalink
Hallo,

da ich häufig gegen verschiedene C++ Libs linken muss, möchte ich
ungern immer über die GCC Option I per Hand die Inlcude Pfad angeben.
Für Libs gib es ja LD_LIBRARY_PATH. Wie lautet der Name für den Include
Path (/usr/include bzw /usr/local/include sind ja dort drin enthalten)?

Danke für die Info

Phil
Juergen Ilse
2009-06-09 09:17:29 UTC
Permalink
Hallo,
Post by Philipp Kraus
da ich häufig gegen verschiedene C++ Libs linken muss, möchte ich
ungern immer über die GCC Option I per Hand die Inlcude Pfad angeben.
Für Libs gib es ja LD_LIBRARY_PATH. Wie lautet der Name für den Include
Path (/usr/include bzw /usr/local/include sind ja dort drin enthalten)?
Die gibt es nicht. Wenn du hingegen die standard-Include-Pfade fuer deine
Compilerinstallation wirklich erweitern willst (das waere eine systemweite
Aenderung, du solltest dir sehr gut ueberlegen, ob du das wirklich willst),
koenntest du die entsprechenden Optionen im "specs" File deiner gcc-Instal-
lation hinzufuegen. Die Art und Weise, wie man das aber ueblicherweise rea-
lisiert, ist die Verwendung eines passenden Makefile und des utilities "make".
Damit traegst du fuer ein Projekt die zugehoerigen Include-Pfade nur ins
Makefile ein, und sie werden bei jedem Aufruf von make automatisch mit an
den Compiler uebergeben. Dinge wie "autoconf" und Konsorten erzeugen auch
ein passendes Makefile, dass diese Optionen dann bereits enthaelt. Fuer
kleinere Projekte, die nicht zwingend portabel sein muessen, wuerde ich
aber auf den overhaed von autoconf und co. verzichten ...

Tschuess,
Juergen Ilse (***@usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
Philipp Kraus
2009-06-09 10:15:18 UTC
Permalink
Post by Philipp Kraus
Hallo,
Post by Philipp Kraus
da ich häufig gegen verschiedene C++ Libs linken muss, möchte ich
ungern immer über die GCC Option I per Hand die Inlcude Pfad angeben.
Für Libs gib es ja LD_LIBRARY_PATH. Wie lautet der Name für den Include
Path (/usr/include bzw /usr/local/include sind ja dort drin enthalten)?
Die gibt es nicht. Wenn du hingegen die standard-Include-Pfade fuer deine
Compilerinstallation wirklich erweitern willst (das waere eine systemweite
Aenderung, du solltest dir sehr gut ueberlegen, ob du das wirklich willst),
koenntest du die entsprechenden Optionen im "specs" File deiner gcc-Instal-
lation hinzufuegen. Die Art und Weise, wie man das aber ueblicherweise rea-
lisiert, ist die Verwendung eines passenden Makefile und des utilities "make".
Damit traegst du fuer ein Projekt die zugehoerigen Include-Pfade nur ins
Makefile ein, und sie werden bei jedem Aufruf von make automatisch mit an
den Compiler uebergeben. Dinge wie "autoconf" und Konsorten erzeugen auch
ein passendes Makefile, dass diese Optionen dann bereits enthaelt. Fuer
kleinere Projekte, die nicht zwingend portabel sein muessen, wuerde ich
aber auf den overhaed von autoconf und co. verzichten ...
Es ging ja hier um das reine Developing, so dass das schon okay ist.
Für das Release
ist natürlich das makefile schon das richtige. Aber wenn man mal
schnell neuere Versionen ausprobieren will, ist es einfacher

Phil
Heike C. Zimmerer
2009-06-09 09:39:35 UTC
Permalink
Post by Philipp Kraus
Hallo,
da ich häufig gegen verschiedene C++ Libs linken muss, möchte ich
ungern immer über die GCC Option I per Hand die Inlcude Pfad
angeben. Für Libs gib es ja LD_LIBRARY_PATH. Wie lautet der Name für
den Include Path (/usr/include bzw /usr/local/include sind ja dort
drin enthalten)?
info gcc, Abschnitt '3.19 Environment Variables Affecting GCC':

`CPATH' specifies a list of directories to be searched as if
specified with `-I', but after any paths given with `-I' options
on the command line. [..]

Es gibt noch weitere, bitte dort (bei CPATH) nachsehen.

Gruß,

Heike
Philipp Kraus
2009-06-09 10:22:45 UTC
Permalink
CPATH
Danke, das war genau das was ich gesucht hatte

Phil

Loading...