2011-09-29 136 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)

相关问题