scons - 如何使 scons 中的目标依赖于外部命令?
问题描述
如何使 scons 程序依赖于外部程序的输出?如果输出文件已经存在,我也不希望它重新制作它。我假设一个构建器是要走的路,但我不太确定如何将我的命令的输出连接为 scons 下的依赖项。
即,我超级做作的例子:
你好ç
#include <stdio.h>
external int foo;
int main()
{
printf("My foo is: %d\n", foo);
return 0;
}
生成器
#!/bin/bash
echo "int foo = 125;" > foo.c
在 make 这可能是:
hello: hello.c foo.c
gcc hello.c foo.c
foo.c: gen.sh
./gen.sh
解决方案
听起来你是一个新的 SCons 用户。
您最好阅读用户指南:https ://scons.org/doc/production/HTML/scons-user.html
请注意,我们在 freenode 上还有一个 IRC 频道 #scons 和一个不和谐服务器:https ://discord.gg/bXVpWAy
在您遇到困难时帮助您。
也就是说,这是一个非常简单的 SConstruct 应该可以满足您的要求:
env=Environment()
# Note that we're listing gen.sh as a source. This ensures if it changes
# foo.c will be regenerated.
env.Command('foo.c','gen.sh','./$SOURCE')
env.Program('hello',['hello.c','foo.c'])
希望有帮助!
推荐阅读
- reactjs - 用子菜单反应原生底部抽屉导航?
- r - 创建连接子字符串的新列
- database - 从服务器中的数据库备份创建本地 postgreSQL 数据库
- powershell - 使用 NSSM 将 PS1(调用 FileSystemWatcher 类)转换为服务
- sql - 如何将现有表中的 7000 条记录中的前 1000 条记录复制到 postgreSql 中的其他新表
- react-native - zIndex 在本地执行中不起作用。反应原生
- r - 我不断收到此错误“docker:无效的参考格式:存储库名称必须小写。”
- ios - SwiftUI NavigationLink:如何在显示目标视图之前调用函数
- r - 如何从数据框中的分组列中获取 2 的所有组合
- r - 使用 ggplot2 创建频率直方图