在ubuntu下編譯linux版客戶端遇__GNUC_PREREQ編譯錯誤的解決方法

使用linux編譯調試,今天嘗試編譯發現如下錯誤:

error: missing binary operator before token "("
__BEGIN_DECLS does not name a type
第一個錯誤位置爲系統的string.h的這個位置:
#if defined __cplusplus && __GNUC_PREREQ (4, 4)
讓人困惑,於是在stackoverflow搜尋半天,知道了出現的原因:json中自帶的有個feature.h文件,與系統的feature.h衝突。在makefile中包含了此文件所在的文件夾時,程序調用這個feature.h編譯,於是出現這樣的錯誤。

json的頭文件不能不包含,而包含了又衝突,如何解決呢?最後看到別人用了這個方法:
原先的:-Ijsoncpp/include/json/ 
改爲:-Ijsoncpp/include
而在json的源文件中,修改包含路徑,改爲“json/json.h"。

這樣至少可以解決衝突問題了。
注:現在在C++ JSON源碼中包含feature.h文件的,進行linux編譯的時候會出現這種錯誤(missing binary operator before token "(")。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章