Ich versuche dieses Tool zu kompilieren. Unten ist der Anfang seines Makefiles:
%Vor%Ich habe auch ~ / include / tools, die nach dem Kompilieren std_io.o, libstd_io.a, stringutils.o und libstringutils.a
enthaltenIch erhalte den folgenden Fehler:
%Vor%Ich bin nicht sicher, ob die Dinge nicht korrekt enthalten sind und warum die Bibliotheksdateien nicht gefunden werden.
Bearbeiten: Es stellt sich heraus, dass ich versehentlich ein Leerzeichen zwischen den Optionen -L und -I gelassen habe. Außerdem mussten die Wege erweitert werden, denke ich. Es funktioniert jetzt, danke!
Das Problem ist die Verwendung der Tilde, um "Home-Verzeichnis" zu bedeuten. Eine Shell führt nur dann eine Tilde-Erweiterung aus, wenn die Tilde das erste nicht in einem Wort enthaltene Zeichen ist. Makefiles machen keine Erweiterung. Also, in
%Vor%Die Shell tut keine Tilde-Erweiterung und gcc sucht im aktuellen Verzeichnis nach einem Verzeichnis namens "~ / include". Aber in
%Vor%Die Shell macht eine Tilde-Erweiterung und gcc sieht
%Vor%stattdessen, was wie erwartet funktioniert. Es ist richtig, die Tilde-Erweiterung für das Ausgangsverzeichnis nicht zu verwenden, sondern einfach $ HOME im Makefile zu verwenden, z. B.
%Vor%