当前位置:  开发笔记 > 编程语言 > 正文

如何让项目将构建输出与Scons放在同一目录中?

如何解决《如何让项目将构建输出与Scons放在同一目录中?》经验,为你挑选了1个好方法。

好的第三次尝试是一种魅力.我只是把它放在一个新的答案,以保持清洁.我和我当地的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提供了自己回答这个问题的机会,但他很害怕他会沉迷于该网站并拒绝.:)



1> grieve..:

好的第三次尝试是一种魅力.我只是把它放在一个新的答案,以保持清洁.我和我当地的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提供了自己回答这个问题的机会,但他很害怕他会沉迷于该网站并拒绝.:)

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有