2011-09-29 58 views
0

我正在使用Eclipse Galileo和CDT進行鍼對嵌入式設備的C開發。與很多針對μcontrollers的其他編譯器一樣,IAR編譯器使用Eclipse/CDT無法識別的一些非標準變量類型,並將它們標記爲問題。由於這些變量類型是其他變量類型的基礎,因此我使用問題級聯,即使使用非標準類型聲明的變量的每一行都被標記爲具有語法問題,即使語法正確。這不是一個關鍵問題,但它絕對是一個麻煩。有沒有辦法#define只在Eclipse編輯器窗口中定義的C宏?

  1. 是否存在的Eclipse/CDT內的設置,我可以添加非標準語法,或...

  2. 是否存在的Eclipse/CDT內的一些預定義宏,我可以像#ifdef SECRET_ECLIPSE_MACRO ...訪問有條件地設置或清除有問題的變量類型定義的字符串宏?

回答

3

那麼,你可以走相反的路。編譯代碼時定義一個NOT_ECLIPSE宏,並檢查它是否存在。如果它沒有定義,那麼你在Eclipse中。

+1

+1,但我認爲甚至可以更進一步。有問題的編譯器可能通過宏'__IAR ___'來標識自己,無論如何。我們可以在'#ifndef __IAR__'中放置類型的僞定義。 –

+0

@JensGustedt:+1你是對的。 [This page](http://predef.sourceforge.net/precomp.html)有許多不同編譯器預定義宏的列表,包括'__IAR_SYSTEMS_ICC__'。 – oosterwal

0
__CDT_PARSER__ 

期間CDT編輯器預處理階段定義(工程至少有靛藍SR2)

相關問題