我有一个预编译步骤、与 Linux 相比、可以自动执行 Windows 操作。
- script.sh 在 Linux/Mac 中工作
- script.bat 在 Windows 中工作
如何检测操作系统预编译/编译后启动正确的脚本?
不能确定处理此问题的通用方法。
目前、我们必须根据平台编辑项目设置、以启动 shell 脚本或批处理文件。
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.
我有一个预编译步骤、与 Linux 相比、可以自动执行 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
它看起来像预编译步骤、因此也可能是编译后脚本、可以采用 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}作为参数传递给脚本、以在所有操作系统的正确目录中创建文件。
尝试从 shell 脚本中删除*。sh 文件扩展名。 这对我很有用。
再次感谢 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 中都能正常工作。
我认为 Ki 打算重命名文件系统中的脚本以删除.sh 扩展名、并在预编译步骤中删除扩展名。
即、在 Mac 或 Linux 下、shell 脚本名为 gitsha
而在 Windows 下、批处理文件名为 gitsha.bat