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.

[参考译文] CODECOMPOSER:同一文件的 C2000软件本地副本和链接副本?

Guru**** 2553450 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1082320/codecomposer-c2000ware-local-and-linked-copies-of-the-same-file

部件号:CODECOMPOSER
“线程:C2000WARE”中讨论的其它部件

大家好,

我最近使用 c2000ware 的 empty_bitfield_project 示例启动了一个新项目。 我注意到,在这个项目中,c2000ware 有几个文件的本地副本。 这包括 f28004x_sysctrl.c, f28004x_GPIO, f28004x_pievect.c, f28004x_PIECTRL.c, f28004x_defaultisr.c, f28004x_codestartbranch.asm 等。我猜测这些本地副本供用户在安装时定制2000年的应用程序,而无需修改其原始文件。

但  在项目资源管理器的“包括”列表下,它还列出了从 c2000ware 安装目录链接的这些文件的副本。  我担心 CCS 可能会决定构建文件的链接版本,一旦我编辑本地版本,这将是个很大的问题。 在链接/编译过程方面,我是一名业余爱好者,所以我假设这是以某种方式避免的,但我希望有人能向我解释。

此致,

迈克

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

    迈克  

    这取决于源文件如何包括在项目中。  

    CCS 支持向项目添加源文件和/或文件夹的两种方法。 您可以 添加 文件或 链接 文件。   当您向 项目添加文件/文件夹时,它会被物理复制到工作空间中项目目录的根位置。

      文件/文件夹链接到项目时,项目将在文件系统中创建对文件/文件夹的引用,而不是将其复制到项目目录中。

    如果要确保它使用本地版本,则必须更新项目的“包括”路径。 您可以右键单击“项目”->“属性”->“生成”->“包括选项”

    有关详细信息,请参阅以下链接。

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_project-management.html#configuring-projects

    此致

    西达尔斯

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

    你(们)好,Siddarth

     我导入的示例项目中已经存在这些源文件的本地副本,我没有手动添加它们。 但我的编译器搜索路径 也列出 了“C:\ti\C2000\C2000Ware_4_00_00_00\device_support\f28004x\common\source”,其中包含相同文件的其他副本。 所以我的项目看到了同一个源文件的多个副本。

    我尝试导入一个新的 empty_bitfield_project,我发现它不是搜索路径中的...\f28004x\common\source。 我不确定这是如何在我的项目中完成的。 删除该路径似乎根本不会影响生成结果,因此我可以告诉大家,它并不依赖其中的任何内容。

    我想这可以解决我眼前的问题,但 我很困惑 为什么编译器/链接器没有抱怨找到多个同名源文件。 如果我复制自己的源文件之一(复制到另一个源目录中)并尝试构建,我将收到引用重新定义的符号的构建错误,如预期。 为什么  以前在\device_support\f28004x\common\source 中的文件中不会发生这种情况?

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

    迈克

    很高兴你能解决这个问题。  理想情况下,编译器应该抛出错误。 将就此与编译器团队进行核对。

    此致

    西达尔斯

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

    您好,Siddharth,

    我尝试将 c2000ware 源路径添加到新的 empty_bitfield_project 中,但没有任何生成错误。 请参见以下内容,各种源文件既出现在项目目录中,也出现在包含的搜索路径中:

    我对项目进行了压缩,想知道您是否观察到相同的行为:

    e2e.ti.com/.../empty_5F00_bitfield_5F00_project_5F00_test.zip

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

    嗨,迈克,  

    include 路径主要用于指定头文件路径。  

    我试图编译您共享的项目,但我看到的行为也是一样的。  

    但是,如果我从 include 路径中删除“源”路径,那么我也可以构建项目。

    此致

    西达尔斯

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

    如果我包含源目录,但排除了其中一个本地源文件,则编译 器会抛出有关该文件中未解析符号的错误。  因此,包含的路径中的源文件(.asm 和.c)是否总是被忽略? 我认为,这将解释事情。

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

    迈克

    是的,包含的路径中的源文件将被忽略。  

    此致

    西达尔斯