2014-04-15 222 views
30

我已經包括:'的ReadLine/readline.h' 找不到文件

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

和我的編譯器包括標誌

-lreadline 

,但我仍然收到錯誤消息:

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

我想使用函數,readline();

在這裏更詳細定義:http://linux.die.net/man/3/readline

+0

您正在使用什麼操作系統/版本? –

+0

你的編譯器尋找包含文件的路徑是什麼? (通常,它包含'/ usr/include')。 'readline/readline.h'是否存在於該路徑中? (例如'/ usr/include/readline/readline.h')。如果不是,請通過'-I'添加正確的路徑。 (例如,如果在/ usr/local中安裝了readline,請在編譯器調用中添加'-I/usr/local/include'。 –

+0

@TimCastelijns 2013 x86_64 x86_64 x86_64 GNU/Linux – timeshift117

回答

73

你引用一個Linux發行版,所以你需要安裝readline的開發庫

在基於Debian的平臺,像Ubuntu,你可以運行:

sudo apt-get install libreadline-dev 

並且應該在正確的位置安裝正確的標頭。

如果您使用yum一個平臺,像SUSE,那麼命令應該是:

yum install readline-devel 
+0

感謝這工作,但是當我刪除-lreadline它停止工作,所以我不得不把它放回去。我正在使用clang進行編譯,並不確定是否這是我不得不離開它的原因。我會接受你的分鐘時回答。時間到了。 – timeshift117

+0

@ timeshift117 - 你很對,它需要在那裏。只需*查找頭文件,您不需要鏈接任何內容,而是使用*鏈接readline庫所需的函數。這是毫無意義的包括但不使用標題,所以我從答案中刪除了那個 – Mike

+0

你能告訴我什麼-dev的意思是? –