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:CCS 20.2.0 中针对 CLI 构建的工作区定义

Guru**** 2408620 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1533479/codecomposer-workspace-definitions-in-ccs-20-2-0-for-cli-builds

部件号:CODECOMPOSER

工具/软件:

大家好-

我们看到不同的构建环境如何识别我们的 MSP430 工程工作区时会出现一些奇怪的行为。 我们 目前有一个 支持 CCS 20.2.0 的多根工作区。 各个工程目录具有工程元数据文件、但顶层工作区仅包含一个.theia-workspace 文件。 下面是工程布局的简化列表:

/tmp/workspace
├── BOOTLOADER
│   ├── .ccsproject
│   ├── .cproject
│   ├── .gitignore
│   ├── .launches
│   ├── .project
│   └── .settings
├── SHARED
│   ├── .ccsproject
│   ├── .cproject
│   ├── .gitignore
│   ├── .launches
│   ├── .project
│   └── .settings
├── APP
│   ├── .ccsproject
│   ├── .cproject
│   ├── .gitignore
│   ├── .launches
│   ├── .project
│   └── .settings
└── msp430.theia-workspace

我们的开发团队使用 macOS、他们可以在 IDE 内部或通过使用以下命令指向.theia-workspace 文件来构建该文件:

ccs-server-cli.sh -workspace /tmp/workspace -application projectBuild -ccs.workspace

我们的 CI 构建环境是 运行 Ubuntu 的 Docker 容器、同一命令无法在工作区中找到任何工程。

# ================================================================================
# [Fri Jun 27 14:44:42 UTC 2025]: CCS headless build starting... 


# ----------------------------------------

# --------------------------------------------------------------------------------
# [Fri Jun 27 14:44:42 UTC 2025]: CCS headless build complete - 0 out of 0 projects have errors

相反、我们需要首先在每个单独的工程上运行 importProject。

ccs-server-cli.sh -workspace /tmp/workspace -application projectImport -ccs.location BOOTLOADER
ccs-server-cli.sh -workspace /tmp/workspace -application projectImport -ccs.location SHARED
ccs-server-cli.sh -workspace /tmp/workspace -application projectImport -ccs.location APP

之后、build 命令成功而不会出现问题。 但是、导入命令不会对工作区文件系统进行任何更改。 因此、我无法确定允许编译的更改、因此我们需要对工作区进行哪些更改、以确保编译可以立即在 CI 环境中运行而无需额外导入。

我们应该如何修改工作区、以便更好地理解 CLI 构建、因为.theia-workspace 文件似乎并不完全足够?

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

    您好:

    之后、build 命令成功而不会出现问题。 但是、导入命令不会对工作区文件系统进行任何更改。 因此、我无法确定哪些内容已更改以允许构建

    用于将工程信息添加到工作区元数据文件夹的工程导入位于用户目录中:

    \AppData\Local\CCS\.CCS-server\workspace\ Texas Instruments

    谢谢

    Ki

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

    谢谢 Ki -

    您知道为什么在其他平台上不需要执行此步骤吗? 在这里、我们只需将 theia-workspace 文件作为目标、构建就会成功。 我们永远不需要运行单独的导入步骤。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您知道为什么在其他平台上不需要执行此步骤吗?

    其他平台是否也是仅通过 CLI 构建的环境? 或者 CCS GUI 是否曾经用于与这些工程所在的工作区文件夹进行交互?  

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

    在其他平台上、使用情况是混合的、而且在尝试 CLI 构建之前、几乎可以确定使用 IDE 来编辑文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在尝试 CLI 构建之前、几乎可以确定使用 IDE 来编辑文件。

    如果使用 IDE、则该工程已自动导入到工作区中。 如果在 IDE 中打开/添加了包含 CCS 工程文件夹的文件夹、则会发生这种情况。 发生这种情况时、CCS IDE 将查找任何有效的 CCS 工程、并将其“导入“到工作区。 这意味着将在工作区元数据位置为其创建元数据。

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

    谢谢 Ki -

    这就提出了另外两个问题:

    1. CCS 如何在所选工程和内部工作区(显示为包含目录哈希值)之间进行映射? 它是每次都创建一个新的(并导入)、还是以某种方式将内部路径映射到提供的工作区路径?
    2. 我们是否可以(并且实际)在工程中提供相同的工作区元数据、从而使 CLI 构建不需要显式运行导入步骤? 或者、这是否是不好的做法(即不应该承诺进行源代码控制)、我们应该依靠 CCS 来根据需要生成这些代码? 我们在每次构建之前都使用自动导入步骤;这只会为我们所做的每个构建增加不必要的时间。

    再次感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CCS 如何在所选工程和内部工作区(看起来有目录哈希值)之间进行映射? 它是每次都创建一个新的路径(并导入)、还是内部路径以某种方式映射到提供的工作区路径?

    是后者。 每个工作区元数据文件夹都与在 IDE 中打开的文件夹(常规工作区文件夹)相关联。 该哈希名称是根据完整的工作区路径名称生成的(就像文件夹名称出现的方式是一些超出我所知的内部细节)。

    我们是否可以(而且实用)在项目中提供相同的工作区元数据、以便 CLI 构建无需显式运行导入步骤? 或者这是不好的做法(即不应该承诺进行源代码控制)、我们应该依靠 CCS 来根据需要生成这些代码吗?

    很可能是后者。 工作区元数据不可移植或共享。 它可能有绝对路径。

    我们在每次构建之前都会执行自动导入步骤;这只会给我们执行的每个构建增加不必要的时间。

    我会建议坚持这一点。 每个工程都应该正确导入到环境中。