Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以根据构建配置更改Eclipse CDT中的代码? 我有一个C++项目,我为CITOS 7和Raspberry Pi构建。我有一个Eclipse构建配置用于为CentOS编译,另一个构建配置用于为Raspberry Pi交叉编译。这两种方法都很有效_C++_Eclipse_Eclipse Cdt - Fatal编程技术网

是否可以根据构建配置更改Eclipse CDT中的代码? 我有一个C++项目,我为CITOS 7和Raspberry Pi构建。我有一个Eclipse构建配置用于为CentOS编译,另一个构建配置用于为Raspberry Pi交叉编译。这两种方法都很有效

是否可以根据构建配置更改Eclipse CDT中的代码? 我有一个C++项目,我为CITOS 7和Raspberry Pi构建。我有一个Eclipse构建配置用于为CentOS编译,另一个构建配置用于为Raspberry Pi交叉编译。这两种方法都很有效,c++,eclipse,eclipse-cdt,C++,Eclipse,Eclipse Cdt,我想要的是根据我使用的构建配置自动修改一两行代码。我注意到Eclipse有一个名为ConfigName的构建变量,但我认为它在代码中是不可访问的。我还尝试在项目设置中为每个构建配置手动创建宏。然而,当我试图在代码中读取宏时,我得到一个错误,即它没有在此范围内声明。除了确定编译的操作系统等基础知识外,我对宏没有太多经验 这似乎是一项不难理解的常见任务。也许我遗漏了一些明显的东西,但我似乎找不到任何关于我试图做什么的文档。这可能吗?我看错方向了吗?经过大量的文档研究和反复试验,我终于找到了解决方案

我想要的是根据我使用的构建配置自动修改一两行代码。我注意到Eclipse有一个名为ConfigName的构建变量,但我认为它在代码中是不可访问的。我还尝试在项目设置中为每个构建配置手动创建宏。然而,当我试图在代码中读取宏时,我得到一个错误,即它没有在此范围内声明。除了确定编译的操作系统等基础知识外,我对宏没有太多经验


这似乎是一项不难理解的常见任务。也许我遗漏了一些明显的东西,但我似乎找不到任何关于我试图做什么的文档。这可能吗?我看错方向了吗?

经过大量的文档研究和反复试验,我终于找到了解决方案

项目属性,转到C/C++ +一般>路径和符号>符号--> GNUC++。为每个生成配置添加一个符号。我补充说:

CONFIG_DEBUG
CONFIG_PI_DEBUG
CONFIG_RELEASE
CONFIG_PI_RELEASE
#if defined(CONFIG_PI_RELEASE)
  // Raspberry Pi release code
#elif defined(CONFIG_RELEASE)
  // CentOS release code
#elif defined(CONFIG_PI_DEBUG)
  // Raspberry Pi debug code
#else
  // CentOS debug code
#endif
注意:为了澄清,请不要在同一位置同时输入上述符号。在其各自的构建配置中输入每个符号作为单个符号

然后,可以使用预处理器指令修改代码。我基本上使用了以下方法:

CONFIG_DEBUG
CONFIG_PI_DEBUG
CONFIG_RELEASE
CONFIG_PI_RELEASE
#if defined(CONFIG_PI_RELEASE)
  // Raspberry Pi release code
#elif defined(CONFIG_RELEASE)
  // CentOS release code
#elif defined(CONFIG_PI_DEBUG)
  // Raspberry Pi debug code
#else
  // CentOS debug code
#endif

您使用的是托管生成项目还是makefile项目?目前它是托管生成。如果我们开始远离Eclipse,我将把它转换成一个makefile项目。