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.

[参考译文] 具有操作系统检测功能的 CCS 预编译/后编译步骤

Guru**** 2564565 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1182732/ccs-pre-post-build-step-with-os-detection

我有一个预编译步骤、与 Linux 相比、可以自动执行 Windows 操作。  

  • script.sh 在 Linux/Mac 中工作  
  • script.bat 在 Windows 中工作

如何检测操作系统预编译/编译后启动正确的脚本?  
不能确定处理此问题的通用方法。  


目前、我们必须根据平台编辑项目设置、以启动 shell 脚本或批处理文件。

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

    尊敬的 Mike:

    [引用 userid="544811" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1182732/ccs-pre-post-build-step-with-os-detection ]\n 如何检测操作系统预编译/编译后启动正确的脚本?  
    不能确定处理此问题的通用方法。  [/报价]

    我也不确定。 请注意、预编译/编译后处理步骤选项只是将指定的文本传递到系统控制台进行处理。  

    您引用的主题中的 Aart7G 帖子可能是最佳选择。 将 sh 和 bat 文件放在同一目录中、并让您的预编译/编译后步骤调用不带扩展名的"script"。 根据使用的系统控制台、应调用正确的控制台。

    谢谢

    Ki

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

    谢谢 Ki。  

    我有2个脚本、gitsha.sh for Mac/Linux、gitsha.bat for windows。  

    在 Debug/文件夹中执行、我需要添加./.  

    在 OSX 的预构建中、我有./gitsha.sh > gitsha.h、这是可行的。  
    卸下扩展件会中断此操作。 您有这样的示例吗?  
    听起来很简单!

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

    它看起来像预编译步骤、因此也可能是编译后脚本、可以采用 Eclipse 变量、例如 ProjDirPath、它是工程的绝对路径。

    使用 Windows 10下的 CCS 11.2创建了一个简单项目、其中预编译步骤为:

    echo #define PROJECT_DIR "${ProjDirPath}" > ${ProjDirPath}/test.h

    它在包含项目绝对路径的项目根目录中创建了一个 test.h 文件:

    #define PROJECT_DIR "C:/Users/mr_halfword/workspace_v11/ccs_pre_build"

    即、您可能能够将 ${ProjDirPath}作为参数传递给脚本、以在所有操作系统的正确目录中创建文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="544811" url="~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1182732/ccs-pre-post-build-step-with-os-detection/4455516 #4455516">删除分机会中断此操作。 您有这样的示例吗?  [/报价]

    尝试从 shell 脚本中删除*。sh 文件扩展名。 这对我很有用。  

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

    谢谢切斯特。 一旦我可以运行脚本、这将非常好!  
    相对路径最好进行清理、但我想在两个操作系统上执行相同的预编译步骤。  
    Ki 认为这是可能的!  

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

    再次感谢 Ki。 您是否在 Mac 或 Windows 上尝试过? 我目前在 Mac 上。  

    当我将预编译从"./gitsha.sh >gitsha.h"更改为"../gitsha > gitsha.h"时

    我在构建控制台上得到这个-  

    注入 git SHA
    /gitsha > gitsha.h
    Makefile:185:目标"预编译"的配方失败
    /bin/sh:./git:没有此类文件或目录
    gmaking[1]:[预编译]错误127 (忽略)

    我不希望这在没有扩展名的任何 Mac 或 Linux shell 中都能正常工作。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="544811" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1182732/ccs-pre-post-build-step-with-os-detection/4455532 #4455532">如果没有扩展名,我不会指望它在任何 Mac 或 Linux shell 中都能正常工作。  [/报价]

    我认为 Ki 打算重命名文件系统中的脚本以删除.sh 扩展名、并在预编译步骤中删除扩展名。

    即、在 Mac 或 Linux 下、shell 脚本名为 gitsha

    而在 Windows 下、批处理文件名为 gitsha.bat

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

    谢谢切斯特。 我一定会误解我刚醒过来的:)  

    在两台机器上都能正常工作。