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.

[参考译文] CCS/CCStudio:如何从编译中删除_cplusplus 区域?

Guru**** 2952510 points

Other Parts Discussed in Thread: TMS320F280041

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/951910/ccs-ccstudio-how-to-remove-_cplusplus-region-from-compilation

器件型号:CCStudio
主题中讨论的其他器件:TMS320F280041

工具/软件:Code Composer Studio

你(们)好。

目前、我正在使用示例'HVPM_Sensorless_2833x'为 tms320f280041编译代码。 我不想编译'_cplusplusplusplus '区域。 如何做到这一点?

谢谢!

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

    您附加的屏幕截图不可见。  常见问题解答中给出了常见的原因。

    编译 C++代码时、编译器预定义预处理器符号__cplusplus。  以下是头文件中的典型用法示例...

    #ifdef __cplusplus
    extern "C"{
    #endif
    
    //此处为典型头文件代码*/
    
    #ifdef __cplusplus
    }
    #endif 

    当此头文件包含在 C++源文件中时、它会编译为 C++代码。  在这种情况下、使用这两个#ifdef 块中的代码。  否则、它将被忽略。  这两个代码块将 extern "C"链接应用于头文件中声明的任何函数。

    我假设丢失屏幕截图中的代码执行的操作类似。   

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    如下图所示、当前只有_cpluspluse 代码会被编译。 那么、我的问题是如何删除它。 我想编译其他部分。  

    此致、

    Dhaval

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

    我假设这些源代码行出现在文件中、文件名使用文件扩展名.c  在典型用法中、这意味着它编译为 C 代码而不是 C++代码。  在这种情况下、会编译屏幕截图中突出显示的行、即#else 和#endif 之间的行。  忽略#ifdef 和#else 之间的行。  这是您想要的吗?

    谢谢、此致、

    乔治

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

    嗨、George、

    这正是我想要的。 我附加了我所需内容的类似图像

    。

    正如您在上面的图像中所说、#else 和#endif 之间的行会被编译、这是我当前应用中所要求的。 请建议我应该做什么。

    谢谢、此致、

    Dhaval

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

    这可能不是编译器问题、而是 CCS 中编辑器突出显示哪些行的问题。  这些变量是否位于由 DATA_SECTION pragma 命名的段中?

    谢谢、此致、

    乔治

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

    是的、George、没错。 这些变量位于由 DATA_SECTION pragma 命名的段中。

    谢谢、此致、

    -Dhaval

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

    那么这不是编译器问题。  CCS 中的编辑器突出显示哪些行时会出现问题。  这个问题对您有多大影响?

    谢谢、此致、

    乔治

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

    由于这个问题、一些 ADC 模块的寄存器未被定义、并且代码无法编译。

    此致、

    Dhaval

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

    这听起来像是编译的预处理步骤存在问题。  要调试此类问题、请使用构建选项 --gen_preprocessor_listing。  它会创建与源文件同名的文件、扩展名更改为.RL。  检查此文件以了解预处理期间发生的情况。  有关更多详细信息、尤其是.RL 文件的格式、 请在 C28x 编译器手册中搜索 标题 为生成原始列表文件的子章节。

    谢谢、此致、

    乔治