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.

[参考译文] 什么命令(和 shell /环境?) 在 CCS 预编译和编译后处理步骤中可用?

Guru**** 2589280 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1003006/what-commands-and-shell-environment-are-available-in-ccs-pre--and-post-build-steps

我正在尝试一些自定义构建步骤来构建项目。 我使用 TI 工具和一些示例变量完成了更复杂的位(将.out 转换为.bin、合并两个 ELF 文件)、但最后一个非常简单的步骤对我来说有点困惑。 我只想复制一个文件、用合并的 ELF 文件替换普通工程.out 文件。 但是、如何以跨平台方式实现这一点呢? 无论是否在 Windows、Linux 或 macOS 版本的可用 Code Composer 下运行、我都希望该项目正常工作。

当然、在 Linux 和 macOS 中、我可以使用`cp`、假设它们在路径中或在诸如"/bin/cp 的已知路径中可用。  在 Windows 下 、它可能 是`copy`、尽管看起来是一个 DOS 内置文件、但不清楚 CCS 是 在 shell 中运行构建步骤、还是直接解析/执行这些步骤。 要实现这两个操作、我需要执行某种`如果 POSIX、那么… 否则、如果是 Windows、则为…" 逻辑、它还 会打开 一个问题、即是否有可用于预编译/编译后 处理步骤的 shell 语言、 或者这些步骤至少在什么环境中运行。 到目前为止、我的印象是:

* CCS 首先使用自己的语法对"${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin 等内容进行变量扩展、尽管它看起来与 Unix shell 兼容

*可能只是直接运行、工作目录设置为"Debug/"等活动配置文件夹、"pipers"或"redirection"或条件逻辑不可用?

*如果这些工具没有随 CCS 一起安装(我只看到 `gmake`和`unzip```)或与 SDK 一起安装(例如 ARM 编译器等)、那么我可能无法依赖它们的跨平台??

对于 这些类型的问题、我是否应该参考文档? "6.1.3.4. 用户指南(当前在 https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_project-management.html#pre-and-post-build-steps 上找到、 但链接似乎不会直接指向 prctice 中的该部分)中的预编译和编译后处理步骤"是非常高级别的、并不会真正详细地介绍此类内容。

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

    您好!

    预编译/编译后处理命令的工作方式非常简单。 CCS 首先扩展任何构建变量、然后将整个字符串按原样传递到系统控制台并在那里执行。 就是这样。 由于系统命令和操作会因主机操作系统(Windows 与 Linux)而异、因此纯跨平台将非常棘手。 shell 脚本也取决于系统(Windows 上的 bat 文件、Linux 上的 sh)。  

    希望这能解释问题

    Ki

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

    谢谢、是的! 如果有一种简单的方法可以做到这一点,那会是一个很好的惊喜,但同时也很好地证实了我对这种情况的理解。