Neu in C ++; Grundlegendes Verständnis von Includes, Bibliotheken und dem Kompilierungsprozess. Habe noch ein paar einfache Makefiles gemacht.
Mein aktuelles Projekt beinhaltet die Verwendung einer informix DB-API und ich muss Header-Dateien in mehr als einem nicht standardmäßigen Verzeichnis enthalten. Wie schreibe ich das? Havent hat im Internet etwas gefunden, wahrscheinlich weil ich keine guten Suchbegriffe verwendet habe
Dies ist eine Möglichkeit, was ich versucht habe (funktioniert nicht). Nur um das Makefile zu zeigen
LIB=-L/usr/informix/lib/c++
INC=-I/usr/informix/incl/c++ /opt/informix/incl/public
default: main
main: test.cpp
gcc -Wall $(LIB) $(INC) -c test.cpp
#gcc -Wall $(LIB) $(INC) -I/opt/informix/incl/public -c test.cpp
clean:
rm -r test.o make.out
Sie müssen
-I
mit jedem Verzeichnis verwenden. Sie können die Verzeichnisse jedoch weiterhin mit Leerzeichen abgrenzen, wenn Sie (GNU) make's verwendenforeach
:quelle
$(foreach,,)
INC_PARAMS=$(INC:%=-I%)
mit Substitutionen .$(foreach,,)
ist besser lesbar, aber Substitutionen werden so häufig verwendet, dass es gut ist, sich mit ihrer Funktionsweise vertraut zu machen.INC_PARAMS = $(addprefix -I,$(INC))
.$(foreach,,)
.