In welchem Pfad sucht Ihr Compiler nach Include-Dateien? (In der Regel enthält es /usr/include). Tut readline/readline.h existieren in diesem Pfad? (z.B, /usr/include/readline/readline.h). Wenn nicht, fügen Sie den richtigen Pfad über hinzu -I. (z. B. wenn Sie readline in /usr/local installiert haben, fügen Sie -I/usr/local/include zum Compileraufruf.)
@WilliamPursell Ich kann keine lokalen Dateien einfügen, die nicht einigermaßen plattformunabhängig sind, da dies auf anderen Systemen verwendet werden muss, auf denen ich nicht kontrollieren kann, was installiert wird.
– Zeitverschiebung117
15. April 2014 um 13:34 Uhr
Eigentlich denke ich, dass Sie Recht haben könnten @WilliamPursell, danke
– Zeitverschiebung117
15. April 2014 um 13:38 Uhr
Mike
Sie verweisen auf eine Linux-Distribution, daher müssen Sie die Readline-Entwicklungsbibliotheken installieren
Auf Debian-basierten Plattformen wie Ubuntu können Sie Folgendes ausführen:
sudo apt-get install libreadline-dev
und das sollte die richtigen Header an den richtigen Stellen installieren.
Wenn Sie eine Plattform mit verwenden yumwie SUSE, dann sollte der Befehl lauten:
yum install readline-devel
Danke, das hat funktioniert, aber als ich die -lreadline entfernte, funktionierte sie nicht mehr, also musste ich sie wieder einfügen. Ich verwende clang zum Kompilieren, nicht sicher, ob das der Grund ist, warum ich sie belassen musste. Ich akzeptiere Ihre Antwort wenn die mind. Die Zeit ist um.
– Zeitverschiebung117
15. April 2014 um 13:45 Uhr
@ timeshift117 – du hast recht, es muss da drin sein. Nur um finden Die Header-Dateien müssen Sie nicht verlinken, sondern auf verwenden die Funktion, die Sie zum Linken der readline-Bibliothek benötigen. Es ist sinnlos, die Header einzuschließen, aber nicht zu verwenden, also habe ich das aus der Antwort entfernt
– Mike
15. April 2014 um 13:52 Uhr
Können Sie mir sagen, was -dev bedeutet?
– Suraj Jain
25. Februar 2017 um 4:36 Uhr
@SurajJain -Entwickler oder -entwickeln Suffixe bedeuten Quellen und Header für Entwickler. Pakete ohne Entwickler enthält nur kompilierte Binärdateien.
– Denis Kolodin
27. Februar 2017 um 10:51 Uhr
Dieser Befehl hat mir unter Linux Mint geholfen, als ich genau das gleiche Problem hatte
Welches Betriebssystem/Version verwendest du?
– Tim
15. April 2014 um 13:27 Uhr
In welchem Pfad sucht Ihr Compiler nach Include-Dateien? (In der Regel enthält es
/usr/include
). Tutreadline/readline.h
existieren in diesem Pfad? (z.B,/usr/include/readline/readline.h
). Wenn nicht, fügen Sie den richtigen Pfad über hinzu-I
. (z. B. wenn Sie readline in /usr/local installiert haben, fügen Sie-I/usr/local/include
zum Compileraufruf.)– William Pursel
15. April 2014 um 13:28 Uhr
@TimCastelijns 2013 x86_64 x86_64 x86_64 GNU/Linux
– Zeitverschiebung117
15. April 2014 um 13:33 Uhr
@WilliamPursell Ich kann keine lokalen Dateien einfügen, die nicht einigermaßen plattformunabhängig sind, da dies auf anderen Systemen verwendet werden muss, auf denen ich nicht kontrollieren kann, was installiert wird.
– Zeitverschiebung117
15. April 2014 um 13:34 Uhr
Eigentlich denke ich, dass Sie Recht haben könnten @WilliamPursell, danke
– Zeitverschiebung117
15. April 2014 um 13:38 Uhr