This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 在 CCS12中使用--undefine

Guru**** 1640790 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1177995/use-of---undefine-in-ccs12

你(们)好。

我有一个 CSL 安装,csl_general.h 具有以下定义:

/** ***************************************************************************
 * --------------------------------------------------
 * PART1: CHIP VERSION MACRO DEFINITION FOR PG2.1 CSL
 * --------------------------------------------------
 *
 * Below macros are used to enable the source code specific to chip version
 * TMS320C5517.
 *
 * 'CHIP_C5517' indicates TMS320C5517 DSP.
 *
 * Defining the macro below will enable the code for the DSP TMS320C5517.
 */

/* TMS320C5517 */
#define CHIP_C5517

...
..
..

如果 可能的话、我想直接在 CCS12项目环境变量中的某个位置"取消定义"这个#define CHIP_C5517宏。

是否有办法取消定义此宏/符号、以便在项目编译时自动编译正确的代码(这不是 C5517的代码)?

CCS 用户指南中对此没有太多内容...

提前感谢 Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="49966" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1177995/use-of---undefine-in-ccs12 ]如果 可能、我希望直接在 CCS12项目环境变量中的某个位置"取消定义"此#define CHIP_C5517宏。

    我认为、对于您的源代码中定义的宏而言、这是不可能的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所以我必须在.h 文件中手动注释掉这个宏吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、或者、或者、如果您#include "cSL_general.h"、则可以使用#undef chip_C5517。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这似乎会达到这个目的、但我刚刚尝试了、它打破了编译。 我在#include 之前和之后都尝试过,但在编译中包含错误代码之后,宏可能稍后未定义...

    我认为只要#undef 位于确定所有条件代码编译的同一 csl_general.h 源文件中,这将起作用...

    我希望我可以像一个"全局"未定义那样在编译开始之前关闭宏,然后为我的平台编译正确的代码... 但是,遗憾的是,失去睡眠不是一个大问题;-)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="49966" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1177995/use-of---undefine-in-ccs12 ]如果 可能、我希望直接在 CCS12项目环境变量中的某个位置"取消定义"此#define CHIP_C5517宏。

    可以添加编译器构建选项--undefine=chip_C5517,并使用该设置构建每个文件。  但是、这没有您想要的效果。  因为编译器首先看到编译器选项,然后是源代码行...

    #define CHIP_C5517

    来自源的设置会覆盖命令行中的设置。   

    因此,唯一的方法是...

    [引用 userid="49966" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1177995/use-of---undefine-in-ccs12 "undefine "此 #define CHIP_C5517宏命令

    (笑声) 更改源代码。

    谢谢、此致、

    乔治