staging.inyokaproject.org

C -Problem mit #include

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

peelde

Anmeldungsdatum:
4. Mai 2016

Beiträge: Zähle...

problem mit #include

eine unterprogrammsammlung habe ich bisher mit:

#include <home/user/dos/tools/uprog.c>

geladen

eleganter wäre aber:

#include <$HOME/dos/tools/uprog.c>

dies funktioniert aber nicht - mache ich was falsch oder geht das prinzipiell nicht?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

peelde schrieb:

#include <$HOME/dos/tools/uprog.c>

dies funktioniert aber nicht - mache ich was falsch oder geht das prinzipiell nicht?

Ja, Du kannst keine Shell-Variablen beim #include expandieren. Die übliche Lösung ist, dass man das, was in $HOME steht als Include-Basis angibt (oft mit Option -I) und dann nur den Rest verwendet.

1
$ gcc -I "$HOME" ... foo.c

und dann in foo.c

1
#include <dos/tools/uprog.c>

Wenn Du mit make baust, dann fügst Du das im Makefile üblicherweise der Variable CPPFLAGS hinzu.

rleofield

Avatar von rleofield

Anmeldungsdatum:
14. September 2008

Beiträge: 798

peelde schrieb:

problem mit #include

eine unterprogrammsammlung habe ich bisher mit:

#include <home/user/dos/tools/uprog.c>

geladen

eleganter wäre aber:

#include <$HOME/dos/tools/uprog.c>

dies funktioniert aber nicht - mache ich was falsch oder geht das prinzipiell nicht?

Ja.

Das mit dem Pfad hat rklm schon geschrieben. Ok.

Aber *.c Files bindet man nicht via #include ein. Wenn da Funktionen drin sind, sieht der Linker u.U. diese mehrfach, wenn man den 'include-File.c' auch in anderen Sourcefiles einbindet.

Mit *.c ist das eine 'pass doch auf'-Software und das kann schiefgehen.

Nur eine Erfahrung.

von

rleofield

peelde

(Themenstarter)

Anmeldungsdatum:
4. Mai 2016

Beiträge: 35

Danke - das wars!

Antworten |