scons - 编译后运行程序

din*_*ehr 6 c++ python scons

我想在编译后直接运行构建的程序,以便我可以构建和启动我的程序scons.

我认为这个SConstruct-File会在重建时启动程序.

main = Program( "main", [ "main.cc" ] )

test = Command( None, None, "./main >testoutput" )
Depends( test, main )
Run Code Online (Sandbox Code Playgroud)

每次我跑,这都会启动它 scons

main = Program( "main", [ "main.cc" ] )

test = Command( None, None, "./main >testoutput" )
Requires( test, main )
Run Code Online (Sandbox Code Playgroud)

但两者都不起作用,我的程序永远不会被执行.我究竟做错了什么?

Bra*_*ady 8

这应该更好地运行程序只有在它构建时.

main = Program( "main", [ "main.cc" ] )

test = Command( target = "testoutput",
                source = "./main",
                action = "./main > $TARGET" )
Depends( test, main )
Run Code Online (Sandbox Code Playgroud)

并使用AlwaysBuild()每次运行它,正如@doublep所提到的那样:

main = Program( "main", [ "main.cc" ] )

test = Command( target = "testoutput",
                source = "./main",
                action = "./main > $TARGET" )
AlwaysBuild( test )
Run Code Online (Sandbox Code Playgroud)

如果你想看到testoutput的内容,你可以这样做:

(假设Linux.用一些Python代码打印文件会更容易)

main = Program( "main", [ "main.cc" ] )

test = Command( target = "testoutput",
                source = "./main",
                action = ["./main > $TARGET",
                          "cat $TARGET"] )
AlwaysBuild( test )
Run Code Online (Sandbox Code Playgroud)