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.
在新计算机中使用从 v11.01到 v12.0的新版本 CCS 打开工程。 项目属性中相应地更改了所有环境和包含路径等。 重建项目、一切都很好、只是它仍然包含一些旧计算机中存在的路径、这些路径会导致一些警告。 发现问题的原因是、旧路径仍存在于工程中某个文件夹的 subdir_rules.mk 文件中。 仅其中一个文件夹。 项目中的所有其他文件夹都可以。
我想知道 subdir_rules.mk 是如何自动生成的。 为什么其他文件夹中的 Include 路径更新为新计算机中的路径、但仅更新该特定文件夹中的路径。
您好!
makefile 文件(包括关联的*。mk 文件)的所有内容都是从正在编译的 CCS 工程生成的。 因此、您的项目中必须有引用这些旧路径的内容。 请仔细检查项目设置。 如果找不到路径,请附加三个.*项目元数据文件以及 subdir_rules.mk 文件。
谢谢
Ki
谢谢 Ki。 我认为是这样 、但却找不到它的位置。 我 感到奇怪 的是、在项目中、有任何地方可以引用旧路径中的特定文件夹。
但无论如何,我会尝试上载.*项目文件,但当我单击“插入”->“图像/视频/文件”,然后单击“上载”选择.*项目文件和.mk 文件时,似乎不允许上载。 顺便说一下、我尝试了.txt 文件、它可以正常工作。 您能建议如何上传这些文件吗?
我只需将三个文件压缩、然后将 zip 文件拖放到回复编辑字段中
好的、太好了。 zip 文件有效。
请参阅具有项目和 C2000Ware 的旧路径的三个.*项目文件和.mk 文件。
谢谢你。
mk 文件中提到的"旧"路径有哪些?
我注意到该项目的一件事是、它被配置为使用 C2000Ware 4.0.0。
它解释了 frst mk 文件中指向以下内容的路径:
我使用的是4.1.0、所附的第一张图片显示了属性中的内容。
我在第二张图片中检查了构建变量、它已经是新变量。
在第三张图片的"包含"选项中、包含错误.mk 文件 ControllerAPI 的文件夹的路径与其他文件夹相同。 但其.mk 文件与其他文件不同。
第一个屏幕截图表示该工程已配置为 C2000Ware 4.0.0和 SysConfig 1.11.0、但它无法在系统上找到这些版本、因此它将使用它可以找到的最匹配项-即 C2000Waee 4.1.0和 SysConfig 1.13.0。 因此、您的工程确实应该使用这些版本并进行编译。是的、您的编译变量也指向在旧 mk 文件中不匹配的路径。
您能从清洁的环境中再次开始吗? 我的意思是删除项目的所有配置子文件夹("cpu_RAM"等)。 然后使用全新的工作区文件夹重新启动 CCS。 将工程导入新工作区并编译。 它将重新生成配置子文件夹和 makefile 文件。 看看这是否有帮助。 如果不是、请将编译控制台中的所有编译消息复制并粘贴到文本文件、然后将该文件附加到此线程。
谢谢
Ki
好的、谢谢! 除了"CPU1_FLASH_"CPU1_RAM"和"CPU1_RAM"子文件夹外、还有其他我可以或需要删除的内容吗?
我删除了所有文件夹、再次下载了源文件、在 CCS 中打开了一个新的工作区以打开项目、设置所有环境变量并在属性中包含路径等、然后重新构建。 得到相同的结果。 请参阅随附的从编译控制台复制的编译消息。 谢谢!e2e.ti.com/.../build-message.txt
看起来实际编译使用的是构建消息的所有正确路径、对吧? 只有 mk 文件具有旧路径。
只是一个文件夹"ControllerAPI"中的.mk 文件。 对于所有其他文件夹、.mk 文件具有新路径。
请注意、makefile 是在"cpu_FLASSH1"等活动编译配置子文件夹中生成的。 我假设您发送的 mk 文件是从那里发送的。如果不是、那么什么是"ControllerAPI"文件夹? mk 文件的时间戳是否为旧的?
是的、它来自 CPU1_FLASH 子文件夹。 所有.mk 文件都来自该文件夹 CPU1_FLASH 中的子文件夹。
好的、"ControllerAPI"是 CPU1_FLASH 中的子文件夹?
是否应该是扩展了 CPU1_FLASH 和 ControllerAPI 文件夹的项目利用程序的屏幕截图?
好的、我现在明白了。 工程中的源文件夹会在编译配置子文件夹中生成自己的子文件夹、其中包含自己的 make 文件。
'ControllerAPI"源文件夹还具有其自己的特定于文件夹的构建选项。 回头再看构建消息、我可以看到 TController.cpp 是使用旧 mk 文件中指定的旧路径构建的。 我最初没收到。
请检查'ControllerAPI'的文件夹特定构建选项、并查看仅该文件夹的路径是否为旧路径。
好的、太好了。
但我发现用于设置相对路径的同一字符串不适用于此文件夹。 我必须设置另一个字符串才能使相对路径起作用。 我将深入探讨它。
在查看.cproject 文件时、我看到 ControllerAPI 文件夹的以下选项:
好的。 我想知道为什么它与其他文件夹不同。
此外、如果我删除了其中一个项目文件夹、则这些更改将应用除 ControllerAPI 之外的所有其他文件夹。
如果您在随附的屏幕截图中查看项目浏览器、左侧的图标会有细微差异。
是、正如我在前面的帖子中提到的:
[引用 userid="2210" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1118601/tms320f280049c-how -file-subdir_rules-mk 自动生成的 IN-ccs-v12/4152392#4152392"]'ControllerAPI"源文件夹还具有其自己的特定于文件夹的构建选项。 回头再看构建消息、我可以看到 TController.cpp 是使用旧 mk 文件中指定的旧路径构建的。 我最初没收到。
请检查'ControllerAPI'的文件夹特定构建选项、并查看仅该文件夹的路径是否为旧路径。
[/报价]是的、已选中、它们是旧路径、已解决(警告消失。 谢谢!
现在、我想知道它为什么与所有其他文件夹不同。
我阅读了您共享的链接、对此没有明确说明。 我将检查导致差异的原因。 谢谢!