1. 程式人生 > >mosquitto 使用時出現的一些問題及其解決辦法

mosquitto 使用時出現的一些問題及其解決辦法

問題一:問題描述:

在centos7上編譯mosquitto原始碼時,出現以下問題:

make[1]: 進入目錄“/home/jason/mosquitto-1.2/man”
xsltproc mosquitto.8.xml
warning: failed to load external entity "/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl"
compilation error: file manpage.xsl line 3 element import
xsl:import : unable to load /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl
compilation error: file mosquitto.8.xml line 4 element refentry
xsltParseStylesheetProcess : document is not a stylesheet
make[1]: *** [mosquitto.8] 錯誤 5
make[1]: 離開目錄“/home/jason/mosquitto-1.2/man”
make: *** [docs] 錯誤 2


由提示可以看到,此時問題的原因在於在檔案:manpage.xsl裡面載入不了:docbook.xsl所致,錯誤提示中也顯示在絕對路徑:

/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl

下找不到這個檔案:

 docbook.xsl

再看檔案manpage.xsl裡,按照所提示第3行,果然是這個絕對地址:

<!-- Set parameters for manpage xsl -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl"/>
	<!-- Don't display notes list of link urls. -->
	<xsl:param name="man.endnotes.list.enabled">0</xsl:param>
	<xsl:param name="man.endnotes.are.numbered">0</xsl:param>
	<!-- But if we do, set a base url for the relative links. -->
	<xsl:param name="man.base.url.for.relative.links">http://mosquitto.org/man/</xsl:param>
	<!-- Don't output filename when generating. -->
	<xsl:param name="man.output.quietly" select="1"></xsl:param>
	<!-- Generate ansi style function synopses. -->
	<xsl:param name="man.funcsynopsis.style">ansi</xsl:param>
</xsl:stylesheet>

通過命令查詢檔案 docbook.xsl,在本機中也沒有發現,因此基本可以確定是找不到這個檔案所致:

[[email protected] mosquitto-1.2]# find / -name docbook.xsl

解決辦法:

1.安裝docbook-style-xsl

使用命令:yum -y install docbook-style-xsl

2.檢視檔案docbook.xsl被安裝到了哪裡:

例如:

[[email protected] tools]# find / -name docbook.xsl
/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/epub/docbook.xsl


/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/fo/docbook.xsl
/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/html/docbook.xsl
/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/manpages/docbook.xsl
/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/xhtml/docbook.xsl
/usr/share/sgml/docbook/xsl-stylesheets-1.78.1/xhtml-1_1/docbook.xsl

3.搜尋到之後,將上面紅字中的地址修改到檔案manpage.xsl裡的對應位置;

4.再重新編譯mosquitto,問題已經解決!

問題二:執行mosquitto客戶端程式時出現找不到動態庫:libmosquitto.so.1


./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解決辦法:

編譯完mosquitto之後,進入到lib目錄下,將編譯之後的libmosquitto.so.1 拷貝到目錄/usr/local/lib下,執行如下命令:
cp libmosquitto.so.1 /usr/local/lib

然後再執行:

執行命令:

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

ldconfig

即可

問題三: Invalid user 'mosquitto'.

[[email protected] src]# ./mosquitto
1437558553: Error: Invalid user 'mosquitto'.

兩種解決辦法:

(1)修改配置檔案:mosquitto.conf ,增加登入的使用者,例如當前登入使用者為root

(1)執行命令增加當前使用者:

 adduser mosquitto

如下圖:

問題四:

在修改mosquitto原始碼之後,換到centos環境下重新編譯時可能會出現下面的問題:

mosquitto.c:271:2: 錯誤:缺少結尾的 " 字元
  snprintf(buf, 1024, "%s", CHANGESET);
  ^
mosquitto.c:271:37: 錯誤:expected expression before ‘)’ token
  snprintf(buf, 1024, "%s", CHANGESET);
                                     ^

該問題的原因是檔案:changeset的格式不對,可在centos環境下,按照如下方式修改此檔案的格式:

使用vi開啟此檔案,然後使用:

:set ff=unix

重新設定一下此檔案的格式,然後儲存退出即可

問題五:xsltproc: Command not found

mosquitto編譯的時候出現問題:xsltproc: Command not found

如下圖所示:

解決辦法:安裝libxslt

yum -y install libxslt

問題六:

./mosquitto_internal.h:40:20: error: ares.h: No such file or directory

解決辦法:

  • 方法1關掉:則要到configure.mk檔案中,把配置項WITH_SRV關掉,再編譯就行了如下:

WITH_SRV=no

  • 方法2啟用:

cd <SRC> # i.e. your source code homewget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gztar xvf c-ares-1.10.0.tar.gzcd c-ares-1.10.0./configuremakesudo make install

相關推薦

SQLyog遠端連線mysql出現1130的解決辦法

SQLyog遠端連線mysql時出現1130的解決辦法 在遠端主機上執行:msyql -u roo -p :(password) 進入mysql: use mysql 一般會出現:You must reset your password using ALTER USER statement

struts2下載檔案點選取消出現異常的解決辦法

前言 Struts2的檔案下載Action與普通的Action並沒有什麼太大的不同,僅僅是該Action需要提供一個返回InputStream流的方法,該輸入流代表了被下載檔案的入口,同時在配置檔案中配置Action的result型別為stream。 檔

(javascript)Vue啟動常見錯誤及其解決辦法

(vue.js)vue npm run dev 執行錯誤(1/2) 錯誤一: ERROR F

python用open()函式開啟.py等文件出現編碼錯誤解決辦法

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 94: illegal multibyte sequence 出現

pdf2swf轉換ppt出現錯誤的解決辦法

1)執行命令列 Process p = Runtime.getRuntime().exec("pdf2swf "+dir + fileName+" -o "+ dir + ret+" -T 9 -f -q -s poly2bitmap"); 注意紅色字型地方,轉換pp

國產手機安裝Google服務框架後出現“無法登入 與google伺服器通訊出現問題”的解決辦法

    由於大家都懂的“國情”因素,國內對於國外的網路訪問也是處於封鎖狀態,作為一個開發者,如果沒有學會烹飪“佛跳牆”,那麼他的程式人生是不完美的。    言歸正傳,國產手機都會把Android手機做一次節育,但是對於需要做國外Google相關服務的時候,就焦頭爛額了(沒錯,

ArcGIS Engine 修改 PageLayout 中地圖比例尺出現的Bug解決辦法

原文地址:https://gis.stackexchange.com/questions/9943/mapscale-not-being-persisted-properly-in-mxd-when-programmatically-changed-outsi?answert

關於Android中Dialog show跟dismiss出現crash的解決辦法

        最近在做專案的時候,越來越多的開發者反饋SDK Dialog的show以及dismiss導致程式crash,出現的問題是傳遞進來的Activity被finish或者重建(橫豎屏切換)了。下面分別對這兩種情況說明以及解決辦法。 在Dialog.show時出現c

MYSQL數據庫導入數據出現亂碼的解決辦法

col 註意 ref das 同名 直接 對話 對話框 粘貼 首先在mysql的操作工具中新建同名數據庫,編碼utf-8新建數據庫時一定要註意生成原數據庫相同的編碼形式, ◆方法一: 通過修改mysql安裝文件中my.ini中參數 –default-chara

mosquitto 使用時出現一些問題及其解決辦法

問題一:問題描述: 在centos7上編譯mosquitto原始碼時,出現以下問題: make[1]: 進入目錄“/home/jason/mosquitto-1.2/man” xsltproc mosquitto.8.xml warning: failed to lo

jquery ajax 請求中多出現一次OPTIONS請求及其解決辦法

安全 htm 及其 就是 跨域請求 ons 什麽 get ati http://www.tangshuang.net/2271.html 在上一篇《服務端php解決jquery ajax跨域請求restful api問題及實踐》中,我簡單介紹了如何通過服務端解決jquer

關於導出Excel出現異常的解決辦法。:System.UnauthorizedAccessException: 檢索 COM 類工廠中 CLSID 為 {000209FF-0000-0000-C000-000000000046} 的組件失敗

size 本地 ESS spa 電腦 步驟 我的電腦 service 交互式 異常信息為:System.UnauthorizedAccessException: 檢索 COM 類工廠中 CLSID 為 {000209FF-0000-0000-C000-00000000004

vue專案出現空格警告的原因及其解決辦法

原因: 因為你的Webpack 配置中大概是使用了 eslint-loader,這是用來規範程式碼風格的,在多人協作或大專案中推薦使用,不想要則可以在 webpack.config.js 中去掉。eslint是語法檢查工具,但限制太過於嚴格,作為開發人員,大部分人還是無法適應這

當在DOS下視窗下顯示Mysql資料庫資訊,中文內容出現亂碼的解決辦法

出現亂碼的原因:在DOS視窗預設字符集為GBK格式,如果當前Mysql設定的預設編碼格式為非GBK(比如資料庫設定為UTF8),則可能就出現中文亂碼現象,因此在輸出資訊之前,須執行以下語句: SET NAMES gbk 該語句相當於是執行了以下三條語句: SET chara

初學vue出現空格警告的原因及其解決辦法

初學vue自己新建一個vue專案來做學習demo。不過在編寫程式碼時一直出現空格不規範的警告。嚴重影響初學者的熱情。錯誤如下圖所示。(這樣的錯誤很多,但大概翻譯成中文的意思都是說空格使用不規範。)這是因為你使用 ESLint,用來規範程式碼風格的。你的 Webpack 配置中

ArcGIS API for Flex製作程式釋出後出現錯誤:"訪問 URL 遇到安全性錯誤" 解決辦法嘗試(學習筆記)

問題: 前不久利用ArcGIS API for Flex做了一個程式,在Flash Builder中執行時能夠正常顯示地圖,並不報出錯誤,然後利用IIS釋出後進行瀏覽就出現錯誤[RPC Fault faultString="訪問 URL 時遇到安全性錯誤" faultCo

maven聚合專案專案間依賴出現錯誤的解決辦法

純手打,轉載請附上本文網址!!! 例如自己的專案taotao maven聚合專案專案間依賴時 打包時候要先在聚合工程裡面(從外向裡)整體install,再到子工程裡install mvn clean install 一定要從頂層project向裡,否則會出現錯誤 [INF

SQL Server2008建立使用者出現錯誤,解決辦法

在Windows2003或更高版本中.SQL Server2008可以使用Windows的密碼策略..新密碼必須符合以下原則密碼不得包含全部或部分使用者賬戶名.密碼長度至少為8個字元.密碼包含大寫字母,小寫字母,數字,非字母數字.最長為128個字元可以通過如下設定..執行-

安裝Photoshop提示安裝過程中出現錯誤的解決辦法

應該是C盤中殘留之前版本的Photoshop檔案,導致當前版本安裝不了。 使用工具Search Everything搜尋,把C盤中所有Photoshop的檔案資料夾都刪除,然後就可以了。 同理,Ado

搭建AD域環境 出現錯誤:未能為域xx.xx.xx建立GPO 出現擴充套件錯誤 解決辦法

今天在Window Server 2003 SP2 企業版 搭建Active Directory (活動目錄 )時,建立到一半,就報錯, 錯誤資訊如下: 由於以下原因,操作失敗: 未能為域 oayaling.oa.cn   建立GPO。 “出現了擴充套件錯誤。” 從安裝D