Hallo zusammen,
ich habe ein Problem mit dem Makefile:
Im meinem C-File steht folgende Zeile:
#include TEMP_DIR
TEMP_DIR ist hierbei ein Define den ich gerne im Makefile vorgeben will z.B. TEMP_DIR = "temp.txt". Ich hab das so versucht, dass ich den CFLAGS folgendes mitgegeben habe -DTEMP_DIR="temp.txt". Leider hat das nicht funktioniert. Kann jemand helfen?
Gruss
Wilfrid
On Donnerstag, 12. Dezember 2002 15:14, Eberhard Wilfrid ZFF TE-PR wrote:
Hallo zusammen,
ich habe ein Problem mit dem Makefile:
Im meinem C-File steht folgende Zeile:
#include TEMP_DIR
TEMP_DIR ist hierbei ein Define den ich gerne im Makefile vorgeben will z.B. TEMP_DIR = "temp.txt". Ich hab das so versucht, dass ich den CFLAGS folgendes mitgegeben habe -DTEMP_DIR="temp.txt". Leider hat das nicht funktioniert. Kann jemand helfen?
Ich glaube nicht, daß das so überhaupt funktionieren kann. '-D...' beim
Compileraufruf ist das gleiche wie '#define' im Code, d.h. das wird genauso
wie '#include' vom Präprozessor ausgewertet. Das beißt sich.
Was Du eigentlich willst, ist so etwas:
#include "myheader.h"
und dann mit 'gcc -I$(MYDIR)' diese Datei aus dem gewünschten Directory
includieren. DAS ist gängige Praxis. Was Du probiert hast nicht - wohl, weil
es nicht geht. ;-)
CU
--
Stefan Hundhammer
Am Don, 2002-12-12 um 15.14 schrieb Eberhard Wilfrid ZFF TE-PR:
Hallo zusammen,
ich habe ein Problem mit dem Makefile:
Im meinem C-File steht folgende Zeile:
#include TEMP_DIR
TEMP_DIR ist hierbei ein Define den ich gerne im Makefile vorgeben will z.B. TEMP_DIR = "temp.txt". Ich hab das so versucht, dass ich den CFLAGS folgendes mitgegeben habe -DTEMP_DIR="temp.txt". Leider hat das nicht funktioniert. Kann jemand helfen?
1. -D-Flags sollte man CPPFLAGS packen, nicht in CFLAGS. 2. -DTEMP_DIR=\"temp_txt\" wäre was Du suchst. 3. #include define ist zwar mit den meisten derzeitigen Compilern machbar, es gibt aber Bestebungen diese Art von "includes" zu verbieten. Davon mal abgesehen, ist es nicht gerade guter Stil. Ralf
Am Don, 2002-12-12 um 16.29 schrieb Thorsten Haude:
Moin,
* Ralf Corsepius
[2002-12-12 15:40]: 1. -D-Flags sollte man CPPFLAGS packen, nicht in CFLAGS.
Huch? Auch in C? Ja.
CPPFLAGS sind die Flags, die vom Präprozessor interpretiert werden sollen. Deshalb auch der Name "CPPFLAGS" - cpp ist traditionell der Präprozessor. Vermutlich verwechselst Du CPPFLAGS mit CXXFLAGS. Dies wäre das Pendant zu CFLAGS für den C++-Compiler. In einfachen Makefiles macht es allerdings kaum einen Unterschied ob nun CFLAGS oder CPPFLAGS verwendet wird, in gemischt-sprachigen Makefiles allerdings einen ganz erheblichen, da CPPFLAGS typischerweise an die unterschiedlichen Compiler für unterschiedliche Sprachen weitergeleitet werden (z.B. auch beim Übersetzen von *.cc (c++) oder *.S (ASM mit vorgeschaltetem cpp) verwendet werden) Ralf
Moin,
* Ralf Corsepius
Am Don, 2002-12-12 um 16.29 schrieb Thorsten Haude:
* Ralf Corsepius
[2002-12-12 15:40]: 1. -D-Flags sollte man CPPFLAGS packen, nicht in CFLAGS.
Huch? Auch in C?
Vermutlich verwechselst Du CPPFLAGS mit CXXFLAGS. Dies wäre das Pendant zu CFLAGS für den C++-Compiler.
Das stimmt. Danke für die Aufklärung. Thorsten -- Omnis enim res, quae quando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est. - Aurelius Augustinus
participants (5)
-
Eberhard Wilfrid ZFF TE-PR
-
Peter Wiersig
-
Ralf Corsepius
-
Stefan Hundhammer
-
Thorsten Haude