在linux下編譯遇到 GNUC

2021-07-05 23:30:13 字數 670 閱讀 7408

在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 "(")。

ACE在Linux下編譯安裝

ace版本 ace 5.6 安裝過程 設定環境變數 看使用者使用的是那種shell環境,我比較喜歡用csh的所以在.cshrc檔案中新增ace root環境變數 bash的在.bashrc裡配置 export mpc root ace root mpc export ld library path ...

在linux下編譯boost庫

編譯環境 作業系統 suse linux enterprise server 10 64 bit 編譯工具 gcc 4.1.2 2.解壓boost到 usr share 3.在命令列執行 usr share boost 1 36 0 tools jam src build.sh生成bjam 4.複製...

mingw 在LINUX下編譯WINDOWS程式

ubuntu下可以直接安裝 sudo apt get install mingw32 mingw32 binutils mingw32 runtime 安裝後編譯程式可以 i586 mingw32msvc g 編譯c 程式 i586 mingw32msvc gcc 編譯c程式 用法和gcc g 非常...