好的第三次尝试是一种魅力.我只是把它放在一个新的答案,以保持清洁.我和我当地的scons guru交谈过,他说安装方法应该可行,但有一个更简单的方法.
只需定义您希望可执行文件(或dll)的完整路径.所以:
prj2_env.Program(target = os.path.join(BIN_DIR,PROG), source = SOURCES )
如果您不想在所有地方都这样做,您可以创建一个全局功能:
def PrefixProgram(env, trgt, srcs): env.Program(target = os.path.join(env.["MY_OUTPUT_DIR"], trgt), source = srcs)
然后在你的SConscript中,类似于:
import ('PrefixProgram') # stuff ... PrefixProgram(prj2_env, PROG, SOURCES)
请注意,您可以将自己的属性添加到环境中
env["MY_OUTPUT_DIR"]
来自.我从袖口写下了这个,所以期待一些小的语法错误,什么不是.显然,您可以对共享库和静态库应用相同的技巧.
为了充分披露,我向当地的scons guru提供了自己回答这个问题的机会,但他很害怕他会沉迷于该网站并拒绝.:)
好的第三次尝试是一种魅力.我只是把它放在一个新的答案,以保持清洁.我和我当地的scons guru交谈过,他说安装方法应该可行,但有一个更简单的方法.
只需定义您希望可执行文件(或dll)的完整路径.所以:
prj2_env.Program(target = os.path.join(BIN_DIR,PROG), source = SOURCES )
如果您不想在所有地方都这样做,您可以创建一个全局功能:
def PrefixProgram(env, trgt, srcs): env.Program(target = os.path.join(env.["MY_OUTPUT_DIR"], trgt), source = srcs)
然后在你的SConscript中,类似于:
import ('PrefixProgram') # stuff ... PrefixProgram(prj2_env, PROG, SOURCES)
请注意,您可以将自己的属性添加到环境中
env["MY_OUTPUT_DIR"]
来自.我从袖口写下了这个,所以期待一些小的语法错误,什么不是.显然,您可以对共享库和静态库应用相同的技巧.
为了充分披露,我向当地的scons guru提供了自己回答这个问题的机会,但他很害怕他会沉迷于该网站并拒绝.:)