【问题标题】:Eclipse Issue - Preprocess defined in .c & .cpp file are not considered during compilationEclipse 问题 - 编译期间不考虑在 .c 和 .cpp 文件中定义的预处理
【发布时间】:2017-06-27 06:33:27
【问题描述】:

我正在使用 Eclipse 3.8,我正在开发具有不同配置的 LED 面板,例如共阴极和共阳极。为此,我在 cfg.h 文件之一中将一些预处理器指令设置为配置 -

#define _COMMON_CATHODE_
#undef  _COMMON_ANODE_

最初分别设置或重置两个宏时,它工作正常。但是后来当我对这些宏执行更改时,我发现在编译过程中没有考虑这些更改,因此我仍然得到旧数据。

一些解决方法 - 如果我对源代码进行一些更改,例如更改要显示的文本,那么新版本将以定向形式显示文本。

我尝试为此寻找解决方案,但无法获得类似的案例。

如果有人有任何可能的解决方法,请告诉我。

【问题讨论】:

  • 避免引入以“_”开头的标识符(大写字母)。

标签: c++ c eclipse gcc


【解决方案1】:

Codebench 有同样的问题(它大致基于 Eclipse)。
软件的构建版本存储在定义中,但如果没有完成干净的构建,则更改将不会应用,这让我很困扰,不确定是否有不清理构建的解决方法。
唯一对我有帮助的是在构建之前清理项目,所以:

项目 -> 属性
C/C++ 构建
设置
构建步骤标签

在预构建步骤中添加“make clean”。

因为对你来说它不像构建版本,我能想到的另一个解决方案是使用不同的宏定义集创建 2 个配置,这意味着从源代码中获取你的定义并将它们移动到项目设置中。

项目 -> 属性
C/C++ 通用
路径和符号
符号选项卡
GNU C++
GNU C 取决于项目

在同一屏幕上,在 管理配置 页面创建一些配置,并为每个配置设置所需的定义。您的目标文件将存储在单独的文件夹中,因此它们不会混淆。

【讨论】:

  • 我尝试了第二个选项,但仍然无法正常工作。我认为您的第一个选项会起作用,但我收到“make clean”错误,找不到某些文件。我也意识到每次更改宏都不是好主意。所以,我为不同的配置创建了不同的项目。到目前为止,我的工作正在进行中,但我仍然没有解决确切的问题。目前我正在为不同的配置使用不同的项目绕过它。
猜你喜欢
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2023-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
相关资源
最近更新 更多