標籤:

linux下編譯mosquitto出現的問題---「ares.h: No such file or directory」

剛開始在自己的機器上編譯時,並沒有出現過這個問題,後來換了一台機器後,再編譯就報錯了:ares.h: No such file or directory。

源碼是一樣的,在兩台機器上卻又不同的表現,證明這個和機器本身的環境有關。在百度上找這個問題的解法,網上基本上都是同一種說法,即屏蔽config.mk文件中的WITH_SRV宏。這樣做實際上是將包含有ares庫相關操作的部分在編譯時去掉了。很明顯,這不是一個積極的辦法。而且筆者通過實驗發現,就算屏蔽掉了WITH_SRV宏,後面也會產生一些有關ares庫中的API未定義的錯誤。因而,要採取正面解決這個問題。 其實這個問題也沒有想像中那麼難,就是在本地機器上安裝ares庫即可。網上有人推薦安裝c-ares庫,這個應該是沒有問題的。筆者用「dpkg --list | grep ares」 命令查詢了本地機器上安裝的相關庫,其結果如下圖:

故只需在新的機器安裝這兩個庫即可。(注意,這兩個庫都必須安裝) 在linux下,先後輸入sudo apt-get install libc-ares-dev 和sudo apt-get install libc-ares2即可,安裝示意圖如下:

再次編譯,則可以通過。
推薦閱讀:

為什麼有道詞典默認安裝在C:Documents and Settings 而不是C:Program Files?出於什麼考慮?
[原聲天堂] 原聲大碟 -《不能說的秘密 (Secret)》專輯[320K/MP3] [Rayfile/115]
向大家推薦一個C/C 通用Makefile
python socket.error: [Errno 9] Bad file descriptor什麼原因?
cannot load such file

TAG:編譯 | file | 問題 |