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 无头构建

Guru**** 2439670 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1527766/codecomposer-ccs-20-headless-build

部件号:CODECOMPOSER


工具/软件:

尊敬的专家:

目前、我正在将项目从 CCS12 迁移到 CCS20.2.0.12。

使用 GUI 在 CCS20 中编译迁移的工程符合预期。

不幸的是、当我编译使用“CCS_WORK_DIR"变量“变量的工程时、无头/命令行编译会失败。
该变量似乎已解析为“.../AppData/Local Texas Instruments / CCS/.ccss_server/workspaces/...“中的标准 workspace 元数据文件夹。

是这样吗? 我期望 GUI 和无头构建具有相同的行为。

此致
Lars

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

    您好 Lars、

    如果编译的工程使用了“CCS_WORK_DIR"变量“变量、则无头/命令行编译会失败。
    该变量似乎已解析为“...
    中的标准 workspace 元数据文件夹。/AppData/Local Texas Instruments / CCS/.ccsserver/workspaces/...“。

    这看起来像是一个错误。 CCS_WORK_DIR 应引用包含工程的工作区文件夹、而不是工作区元数据文件夹。 您的项目如何引用此变量? 它是用于链接文件还是编译选项中使用的内容?

    谢谢

    Ki

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

    尊敬的 Ki:

    感谢您的快速响应。

    我的 projecta 中有一个链接文件夹:
    folderA --链接到--> ${CCS_WORKSPACE_DIR}/../folder/subfolder/include

    此文件夹将添加到包含搜索路径:
    ${workspace_loc:/${ProjName}/folderA}

    采用此配置后、可以在 GUI 中成功构建工程。 Include 路径已正确解析为:
    -I"(WorkspacePath-1)/folder/subfolder/include"


    同一项目在命令行上生成失败:
    ccs-server-cli -noSplash -workspace "WorkspacePath" -application com.ti.ccs.apps.projectBuild -ccs.projects ProjectA -ccs.configuration Release -ccs.buildType full

    包含路径解析为:
    -I"C:/Users/username/AppData/Local/Texas Instruments/CCS/.ccs-erver/workspaces/folder/subfolder/include"


    我不知道哪种行为是正确的、但希望构建项目的两种方式都能产生相同的结果。

    谢谢
    Lars

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

    其他信息:

    我将 include 搜索路径替换为用于链接文件夹的相同链接:
    ${CCS_WORKSPACE_DIR}/../folder/subfolder/include

    使用 该搜索路径时、错误模式是相同的。
    使用正确的已解析变量在 GUI 中编译成功、使用错误的已解析变量在命令行中编译失败。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此文件夹已添加到包含搜索路径中:
    ${workspace_loc:/${ProjName}/folderA}[/报价]

    请勿 使用 workspace_loc. 与 CCS 12 相比、CCS 20 中此变量的行为发生了变化:

    https://software-dl.ti.com/ccs/esd/documents/users_guide_ccs/ccs_faqs.html?highlight=workspace_loc#the-eclipse-workspace-loc-variable-is-not-pointing-to-my-workspace-folder-how-do-i-resolve-this

    我将 include 搜索路径替换为用于链接文件夹的相同链接:
    ${CCS_WORKSPACE_DIR}/../folder/subfolder/include[/报价]

    此*应*起作用。 但我看到了与您相同的问题 — 在 IDE 中工作、但在命令行中不工作。

    这是一个错误。 我为此提交了一张票。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-12677

    谢谢

    Ki

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

    感谢您的回答和错误跟踪器票证。 这解决了我有关用于命令行构建的 CCS_WORK_DIR 变量的问题。

    但现在 出现了另一个关于 workspace_loc 变量扩展的问题

    我知道 workspace_loc 变量的行为发生了变化。 但目前我对 CCS 工程中的有效运行模式感到困惑。
    如前所述、我正在致力于将我们的系统项目及其从属项目完全无误地迁移到 CCS20。
    因此,我有很多包含的路径使用${workspace_loc:/${ProjName}/...}.

    目前我可以观察到这个变量是像“旧“或“CCS12"方式“方式那样展开的。 当我执行命令行构建时、它也会以这种方式进行扩展。
    由于这个观察结果、我目前不需要更改该变量、因为它的工作方式与以前类似。

    但是、如果我要查看工程属性中的变量列表 (“显示用户定义的变量和系统变量“)、则“workspace_loc"(“(String) 和“workspace_LOC"(“(Path) 变量都会链接到用户主目录(我的包含路径的目录错误...)。  

    workspace_loc 替换${CCS_WORKSPACE_DIR:/${ProjName}/...}不起作用。


    您能解释一下这种行为吗? 为什么按照 CCS-FAQ 中所述将该变量链接到用户主目录、以及为什么将其解析到另一个位置(我工程的真实工作区位置)?  

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

    我一直在试验这个,我看到一些奇怪的行为。 CCS 20 应将 workspace_loc 的任何实例替换为 CCS_workspace_LOC。 似乎并不总是这样做。 如果没有、workspace_loc 可以指向不同的内容。

    让我们在 CCS 12 中看看这个示例:

    CCS 12 中的 workspace_loc 指向工作区文件夹位置。 条目 2-5 指向同一位置。 条目 6 指向条目 5 指向的路径的“Debug"子“子文件夹。

    现在、将该工程导入 CCS 20 时:

    请注意、只有条目 2 和 4 将 WORKSPE_LOC 转换为 CCS_WORK_DIR。

    另请注意、只有条目 5 具有指向预期工作区元数据文件夹的 workspace_loc。

    这是不正确和不一致的行为。 我期望在所有情况下、workspace_loc 都应该已迁移到 CCS_WORK_DIR。

    我为此提交了一个错误。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-12682

    谢谢

    Ki

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

    尊敬的 Lars、KI:

    小修正 — 在 KI 上面的答复中描述的行为实际上是预期的行为。  “workspace_loc"动态“动态变量在 CCS Theia 中仍然有效。  它更像是一个函数而不是一个变量,因为它接受一个参数 — 一个资源的相对于工作空间的路径。  并在文件系统中返回该资源的绝对路径。  因此、“${workspace_loc:/myProj/folderA}“之类的内容在 CCS Theia 中完全可以正常工作,不需要迁移 — 它会正确解析为“C:\Users\“之类的内容 \workspace_ccstheia\myProj\folderA“。  唯一需要迁移的情况是使用“workspace_loc"而“而不带参数、即“${workspace_loc}“。  这仍然有效、但并不是很有用、因为它解析到 Eclipse 工作区、例如“C:\Users\ \AppData\Local\CCS\.ccs\.ccs-server\workspace\f995c650cc20962bd4a75445527ce226“ Texas Instruments、而不是用户工作区、例如“C:\Users\ \workspace_ccstheia“。  因此、我们仅将这些出现的“${workspace_loc}“无参数迁移到新变量“${CCS_workspace_DIR}“、该变量解析为用户工作区。

    还有一件事 — 用户经常混合使用“${workspace_loc:/myProj/folderA}“和“${workspace_loc}/myProj/folderA。  请注意细微差别:第一个表单将“workspace_loc"/myProj/folderA“/myProj/folderA 作为参数传递给“workspace_loc"函“函数、而第二个表单调用“workspace_loc"而“而不带参数、然后将“space_loc"附加“附加/myProj/folderA 到返回值中。  对于大多数工程、这两种形式的结果在 CCS Eclipse 中应该是相同的路径(因为 Eclipse 工作区和用户工作区是相同的目录)。  但在 CCS Theia 中、这两种形式会产生完全不同的路径、第一种形式会扩展到类似“C:\Users\“的路径 \workspace_ccstheia\myProj\folderA“(这是用户期望的)、第二个表单将扩展到类似“C:\Users\ \AppData\Local\CCS\.ccs\.ccs-server\workspace\f995c650cc20962bd4a75445527ce226\myProj\folderA“ Texas Instruments(这不是用户期望的那样)。  因此、如我的第一段所述、第一种形式在 CCS Theia 中完全没问题、不需要迁移。  但第二个表单会自动迁移到“${CCS_WORK_DIR}/myProj/folderA(在工程导入时)、以提供与 CCS Eclipse 相同的行为。

    此外、 我还重现了 Lars 最初描述的问题、即在运行无头应用时、变量“CCS_WORK_DIR"错误“错误地解析为 Eclipse 工作区(而不是用户工作区)。  此错误仅影响无头应用、对于即将推出的 CCS v20.3.0、此错误现已修复。

    Baltasar

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

    感谢您的澄清!