2014-04-15 12 views
30

mam włączone:'readline/readline.h' nie znaleziono pliku

#include "stdio.h"  
#include <readline/readline.h> 
#include <readline/history.h> 

i mój kompilator zawiera flagę

-lreadline 

ale ja nadal otrzymuje komunikat o błędzie:

fatal error: 'readline/readline.h' file not found 

Próbuję użyć funkcji readline();

zdefiniowane bardziej szczegółowo: http://linux.die.net/man/3/readline

+0

Co os/wersji używasz? –

+0

Jaką ścieżkę szuka twój kompilator dla plików włączających? (Zazwyczaj zawiera '/ usr/include'). Czy w tej ścieżce istnieje 'readline/readline.h'? (np. '/ usr/include/readline/readline.h'). Jeśli nie, dodaj poprawną ścieżkę przez '-I'. (np. jeśli zainstalowałeś readline w/usr/local, dodaj "-I/usr/local/include" do wywołania kompilatora.) –

+0

@TimCastelijns 2013 x86_64 x86_64 x86_64 GNU/Linux – timeshift117

Odpowiedz

73

się odwoływać dystrybucji Linuksa, więc trzeba zainstalować biblioteki rozwoju readline

Na platformach opartych na Debianie, jak Ubuntu, można uruchomić:

sudo apt-get install libreadline-dev 

i powinno się zainstalować prawidłowe nagłówki w odpowiednich miejscach.

Jeśli używasz platformę z yum, jak SUSE, następnie polecenie powinno być:

yum install readline-devel 
+0

Dzięki temu zadziałało, ale kiedy usunąłem -lreadline przestało działać, więc musiałem to ponownie wprowadzić. Używam clang do kompilacji, nie jestem pewien, czy to jest powód, dla którego musiałem go zostawić. Przyjmę twoje odpowiedz, gdy min. czas minął. – timeshift117

+0

@ timeshift117 - masz całkowitą rację, że musi tam być. Wystarczy * znaleźć * pliki nagłówkowe, których nie trzeba łączyć, ale * użyć * funkcji, którą należy połączyć z biblioteką readline. Nie ma sensu dołączać, ale nie używać nagłówków, więc usunąłem to z odpowiedzi – Mike

+0

Czy możesz mi powiedzieć, co -dev oznacza? –