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.

[参考译文] TMS570LC4357:Makefile:宏定义,条件编译gcc -D xxx

Guru**** 2466550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1101946/tms570lc4357-makefile-macro-definition-conditional-compilation-gcc--d-xxx

部件号:TMS570LC4357

大家好:

    如果 在Makefile中添加“CFLAGS+=-D SD_TEST”,则在编译代码时遇到问题。

   我的.C文件中的代码:

   #ifdef SD_test
test1();
   #否则
teset2();
   #endif

运行结果:

   当我在Makefile中添加CFLAGS+=-D SD_TEST,然后在不更改其他代码的情况下编译这个. c文件时,gcc将不会编译这个. C文件。

   程序仍将运行test2()而不是test1()。 否则,当我清理整个项目,然后再次编译该项目时,它将运行test1。

 我希望实现的目标:

1.不要使用清洁器,因为它需要很长的时间;

2.在makefile中添加CFLAGS+=-D SD_TEST时,程序将运行test1(),如果注释掉CFLAGS+=-D SD_TEST,,则运行test2()

顺便说一下,如果 我在CCS中添加了一个“预定义符号”,然后编译代码, 我发现每个. c文件都将被编译。  当我删除“预定义符号” 并且不更改其他代码时,CCS仍将编译所有.c文件。 那么,“CCS生成”和普通makefile之间有什么区别?

   

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

    我假设您正在使用自定义makefile在CCS之外生成程序。

    那么"CCS build "和normal makefile/makefile/makefile[/quot]有何区别?

    CCS项目将在下面生成makefile,然后调用gmake。 因此,CCS项目被视为"管理的makefile项目"。

    我会看看我是否可以让其他人回答您的一般makefile问题

    谢谢

    KI

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

    在CCS中,生成makefile。  CCS生成系统确定在您进行更改后将生成哪些文件。  听起来您有自己的makefile,并希望它在CFLAGS更改时生成一个文件。  我在Google上搜索了一下,此链接可能很有帮助: https://stackoverflow.com/questions/2987.7503万/how-to-force-recompile-when-changing-makefile-flags

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

    感谢您的回答。