嗨,我一直在試圖將LWIP移植到新的arm設備上。當編譯代碼我得到的錯誤信息:gcc c error:expected')'before numeric constant
"lwip/lwip-1.4.0/src/include/lwip/memp_std.h:35:23: error: expected ')' before numeric constant"
當我去到這個文件這一點,下面這幾個類似的宏是什麼,我在該行發現:
LWIP_MEMPOOL(RAW_PCB, MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_PCB")
如果我刪除需要對於具有用於取消激活RAW功能的定義的宏,錯誤將移動到下一個LWIP_MEMPOL()宏。
的定義似乎想要把一個「)」中被定義爲這個前:
#define MEMP_NUM_RAW_PCB 1
的RAW_PCB沒有定義,但「與MEMP_結合」在枚舉創建一個元素。
我試圖用-E選項來編譯整個ting以獲取人類可重畫對象文件,並查看我是否可以找到任何打開的'(',在MEMP_RAW_PCB apears和MEMP_NUM_RAW_PCB替換爲1的區域周圍,但我有未發現人工檢查還沒有任何。
是否有什麼可怎麼回事還是什麼,我還能做什麼或找,找到錯誤的原因是什麼?
也許我應該補充一點,所以任何建議遠遠我不會呼叫main()中的任何LWIP代碼或main()中使用的任何函數。
我建議查看一下從該行產生的預處理器輸出。 – alk
這很快,謝謝:)。是的,這是我使用-E選項獲取.o文件時的操作。我想我應該仔細看看:)。任何想法我應該尋找什麼? – ElvishPriestley
預處理器以某種方式從'memp_std.h:35'上的宏生成無效代碼。檢查這些代碼。 – alk