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/MSP430F6736:如何在链接器命令文件中包括头文件:MSP430F6736,CCSv700,CCSv612,CCS云

Guru**** 2563960 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/591319/ccs-msp430f6736-how-to-include-header-file-in-linker-command-file-msp430f6736-ccsv700-ccsv612-ccs-cloud

部件号:MSP430F6736

工具/软件:Code Composer Studio

您好,

请告诉您如何使我的头文件正常工作吗?  头文件,不是C源文件,而是CMD文件。

这个问题是对我客户的简化,因此非常感谢您的善意回应。

首先,请使用CCSv700尝试附加的项目。

/cfs/file/__key/communityserver-discussions-组件文件/81/0537.hello_5F00_edit.zip

请查找:

-开始时,构建将失败。 因为符号“ADDR”在文件“headerfile4cmd.h”中被注释掉。

-请取消注释"#define ADDR 0"。 然后成功生成项目。

-请在文件"headerfile4cmd.h"中输入任何错误。

   -如果“生成项目”,则不会检测到错误。

   -如果是“rebuild project”(重建项目),将检测到错误。

因此,无论构建为正常构建还是重新构建,是否可以检测到"headerfile4cmd.h"中的错误?

附注 我们知道另一个线程[如何在链接器命令文件中包括头文件],但它不起作用。

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

    [报价用户="Hideaki Nambu"]

    -请在文件"headerfile4cmd.h"中输入任何错误。

       -如果“生成项目”,则不会检测到错误。

    [/引述]

    我无法再现这一结果。  当我故意在headerfile4cmd.h中写入错误代码时,在生成或重建时出现故障。  您在headerfile4cmd.h中输入了什么错误以导致此结果?

    谢谢,此致,

    -George

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

    >>您在headerfile4cmd.h中输入了什么错误以导致此结果?

    [1]
    *注释第2行:"#define ADDR 0"。
    *右键单击项目[_hello]
    *在上下文菜单中,按[Build project]。

    [2]
    *在第4行中键入"Foo"。
    *右键单击项目[_hello]
    *在上下文菜单中,按[Build project]。


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

    您好!

    请原谅我劫持了这条线,我相信我有相关的观察。

    我将此问题归总为“链接程序命令文件依赖关系未正确填充”。 在我们的项目中,我们发现了修改文件检测的缺失,当这些文件包含在'-l'选项中时。

    在附件中,请参阅我们在项目中使用的文件。dsp.cmd包含其依赖文件eth_lnk.cmd和'-l'选项。 然后,复制顺序为:

    1.构建项目,确保成功。

    2.以任何方式修改包含的文件并保存。

    3.重新构建项目。 我是指常规构建命令

    预期结果:检测到依赖关系修改并重新链接项目。

    实际结果:

    "D:\\TI\\ccsv7\\utils\\bin\\gmake "-k -j 8 all -O
    gmake[1]:'myproject.out '是最新的。

    如您所见,实际上,未检测到依赖关系修改,项目被视为最新。

    4.重建项目,即清理和建造。

    此时,构建进程被强制运行,在其结束时,它将运行链接程序,并最终处理包含的文件。

    我包括了我的文件,只是为了显示真实案例。 如果您将工作cmd文件拆分为两个,然后使用'-l'选项将一个部分包含到另一个部分,则可能会遇到完全相同的问题。

    原始主题启动程序描述了通过C预处理程序包含C标头的问题。 链接程序命令文件似乎没有正确检测到依赖性,我们提供了两个测试用例。 如果两者都能解决的话,会很高兴。

    e2e.ti.com/.../lkf.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    欢迎光临!
    我希望这两个问题都能得到解决。
    在您的情况下,必须先成功构建。 然后注入错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    即使我遵循这些步骤,一切都如预期的那样工作...

    [引用用户="Hideaki Nambu"[1]
    *注释第2行:"#define ADDR 0"。
    *右键单击项目[_hello]
    *在上下文菜单中,按[Build project]。

    [2]
    *在第4行中键入"Foo"。
    *右键单击项目[_hello]
    *在上下文菜单中,按[Build project]。

    不过,我要指出一个细节。  每次修改headerfile4cmd.h时,我都要确保输入Ctrl-S保存更改  也许您没有保存这些更改?

    谢谢,此致,

    -George

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

    我可以重现此问题...

    [报价用户="rrrlagic"]

    1.构建项目,确保成功。

    2.以任何方式修改包含的文件并保存。

    3.重新构建项目。 我是指常规构建命令

    预期结果:检测到依赖关系修改并重新链接项目。

    实际结果:

    "D:\\TI\\ccsv7\\utils\\bin\\gmake "-k -j 8 all -O
    gmake[1]:'myproject.out '是最新的。

    [/引述]

    我在 SDOWP系统中提交了CCSEIDE-3125,以对此进行调查。  欢迎您使用我签名中下面的SDOWP链接进行关注。

    谢谢,此致,

    -George

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

    链接程序命令文件似乎没有正确检测到依赖性,我们提供了两个测试案例。

    查看CCS 7.1 中自动生成的一些Makefile,我会说问题不在于 链接程序命令文件没有正确检测到依赖性, 但是,CCS尚未实现为链接程序命令文件生成依赖性信息的机制。

    另外,在查看MSP430 CGT 16.9 v.0.LTS等示例时,我看不到链接器生成链接器命令文件相关性信息的选项(例如,链接器不能识别编译器所识别的-ppd选项)。

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

    George,

    让我们回到原来的观点。 这一问题尚未得到解决。


    g>尽管我应该指出一个细节。 每次修改headerfile4cmd.h时,我都要确保输入Ctrl-S保存更改 也许您没有保存这些更改?

    很抱歉,但事实并非如此。
    我会重复整个方法,以确保我没有忘记保存文件。

    让我再解释一下我的问题。 请重复。:

    [生成项目]成功后,将不会检测到[headerfile4cmd.h]中新插入的错误,随后的[生成项目]将再次通过。

    我在ccs700,ccs612和CCS-cloud中体验过这种体验。

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

    您好!

    与您类似,我创建了一个测试用例,并在我的环境中检查了头文件的C样式包含。 我确认,成功构建后,未检测到对所包含文件的任何后续更改,项目报告为最新。 因此,我认为切斯特的观察是正确的:CCS不会生成,因此不会检查链接程序命令文件的依赖关系信息。

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

    [报价用户="Hideaki Nambu"]

    让我再解释一下我的问题。 请重复。:

    [生成项目]成功后,将不会检测到[headerfile4cmd.h]中新插入的错误,随后的[生成项目]将再次通过。

    [/引述]

    我想我明白你在说什么。  线程上的其他人说,对链接程序命令文件中包含的文件进行任何更改都无法导致gmake重新链接。  我可以重复这一点,并提交 CCSEIDE-3125来解决这个问题。  在您的情况下,不同之处在于所包含文件中的更改是一个错误,故意写入错误。  这是一个准确的总结吗?

    在这种情况下,CCSEIDE-3125也可以解决您的情况。  修复后,gmake将识别所包含文件中的更改意味着链接必须再次出现,并且在出现这种情况时会看到错误。

    谢谢,此致,

    -George

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