例如,我有一个.c文件,如下所示:
$ cat hello.c
int main(){
return 0;
}
然后我使用scons构建并将其复制到某个地方:
$ cat SConstruct
import os,sys
env = Environment()
hello = env.Program('hello.c')
env.InstallAs('/home/admin/hello-new', hello)
在名为“ admin”的用户下运行scons,它会打印:
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.
然后我尝试“ ls / home / admin”,没有像“ hello-new”这样的东西。所以我想知道为什么我的“ env.InstallAs()”完全起作用了吗?如何解决和修复它?
谢谢。
答案 0 :(得分:2)
请阅读常见问题解答,这是关于SCons的常见误解,因此在常见问题解答中也是如此:
在您的示例更改为该示例的情况下,应该导致它始终构建有问题的目标:
import os,sys
env = Environment()
hello = env.Program('hello.c')
install_target = env.InstallAs('/home/admin/hello-new', hello)
# Always build the install target by default
Default(install_target)