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.

[参考译文] 编译器/MSP430F5659:ccs901增量编译 isn#39;t 重新编译包含修改后的预处理器定义的文件

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/806683/compiler-msp430f5659-ccs901-incremental-build-isn-t-re-compiling-files-that-include-a-modified-preprocessor-define

器件型号:MSP430F5659

工具/软件:TI C/C++编译器

我有一个头文件 print.h、其定义如下:

#define PRINTDEVLN (...) //调试::println (__va_args__) 

此头文件以及 PRINTDEVLN()包含在其他几个源文件中。 当我取消对 debug::println()函数的注释并通过构建按钮(锤子)进行增量编译时,只会重新编译 print.cpp (我希望看到包括此宏的所有源文件也会被编译)。 正如预期的那样、当我进行重建(或任何类型的清理)时、问题不是问题。 我最近刚从 CCS8升级到 CCS9、旧版本没有问题。 我注释了整个行、编译器抱怨一个源文件缺少函数定义(但没有提到其他文件)。 当我删除注释并执行另一个增量编译时、print.cpp 和带有错误的源文件被重新编译(但不是具有定义的其他文件)。

我觉得我必须有一个错误的设置、是否有人看到过这样的情况?

有我的当前设置:

  • MSP 编译器:18.12.2.LTS
  • CCS 版本:9.0.0.00004
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sheldon、您好!
    我尝试重现此问题、但未成功。 我将 CCSv9.0.1与编译器18.12.1 LTS 一起使用。 我怀疑编译器是这里的原因、因为它看起来像是 CDT 问题。 您能否提供更多详细信息? 例如、头文件相对于源文件在哪里? 其路径是否在 include 搜索路径中? 源文件是否链接到工程?

    最简单的方法是提供一个简单(自包含)的测试用例。 它可能只是一些虚拟源文件和一个头文件、以及项目元数据。 我可以自己导入和构建的东西。

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

    很抱歉耽误你的答复。

    头文件相对于源文件在哪里?

    头文件位于项目根目录中。 我参考的有关编译错误测试的源文件也位于根目录中。 但是、应该注意的是、我在许多文件中使用此标头。 有些位于根目录中、而另一些位于嵌套目录中。 项目之外没有文件是链接资源。

    其路径是否在 include 搜索路径中?

    我正在使用包含选项中的默认包含搜索路径、请参阅以下内容:

    ${MSP430_DRIVERLIB_INCLUE_PATH}
    ${CCS_base_root}/MSP430/include
    ${PROJECT_ROOT}
    ${PROJECT_ROOT}/driverlib/MSP430F5xx_6xx
    ${CG_TOOL_ROOT}/包含

    另一个信息:我从 Code Composer 的早期版本(我认为是8.1.0)中导入了这个项目。 我可能能够构建一个测试项目、但我担心复制确切的情况来产生这个问题可能是难以捉摸的。

    谢谢、

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

    谢谢。 我曾尝试从之前的 CCS 版本导入工程、但运气不好(重现问题)。 但它从 CCS 8.3.1到9.0.1。 我也可以尝试使用8.1.0。  

    如果您可以将一个非常简单的测试案例组合在一起、这也会非常有帮助。

    谢谢

    Ki

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

    我仍然没有任何机会重现这一问题。 您是否有机会提供简单的测试案例?

    谢谢

    Ki

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

    您好 Ki、

    我目前正与一个项目联系在一起,因此,我也要处理这个问题。 当我得到一个更改时、我将尝试构建一个测试项目。

    谢谢、

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

    谢谢 Sheldon。