Mein Beweggrund dafür besteht darin, die Angabe des relativen Pfads für jede Quelldatei zu vermeiden, wie ich weiter unten erläutere.
Meine Projektverzeichnisstruktur sieht so aus:
Code: Select all
MyPlugin --> src --> Foo.cpp
--> Foo.h
--> Bar.cpp
--> Bar.cpp
--> build --> Makefile
Code: Select all
SRC_PATH=../src
OUT_PATH=../bin
VPATH=${SRC_PATH}
FILES=Foo.cpp Bar.cpp
CC=g++
CFLAGS=-Wall -shared
all:
mkdir -p ${OUT_PATH}
${CC} ${CFLAGS} -I${SRC_PATH} ${FILES} -o ${OUT_PATH}/MyPlugin.so
Code: Select all
FILES=../src/Foo.cpp ../src/Bar.cpp
g++: Foo.cpp: Keine solche Datei oder kein solches Verzeichnis
g++: Bar.cpp: Keine solche Datei oder kein solches Verzeichnis
Ich kann keine Platzhalter verwenden (
Code: Select all
*.cppIch habe in der G++-Hilfe und in der Make-Dokumentation nachgesehen und mir Stack Overflow-Beiträge angesehen, z. B. https://stackoverflow.com/questions/100 ... -directory und gcc/g++: „Keine solche Datei oder kein solches Verzeichnis“, aber ich konnte keine Lösung finden, die ich verwenden könnte. Gibt es einen geeigneten Ansatz für dieses Problem?
Das Beispiel war möglicherweise irreführend. In diesem vereinfachten Beispiel habe ich alle Quelldateien in einem Verzeichnis, aber in meinem eigentlichen Projekt habe ich mehrere Unterverzeichnisse und mehrere Dateien in jedem Verzeichnis. Obwohl das cding in das src-Verzeichnis in meinem obigen Beispiel funktioniert, wird es in meinem tatsächlichen Projekt nicht funktionieren (oder zumindest würde ich gerne wissen, wie es funktionieren würde).
Mobile version