gpt4 book ai didi

scons - 用SCons实现 'install'目标

转载 作者:行者123 更新时间:2023-12-04 18:54:35 25 4
gpt4 key购买 nike

我尝试建立一个构建系统来构建一个共享库MySharedLib和一个依赖MySharedLib的二进制MyBinary。生成系统应仅在要求时才能够安装MySharedLib和MyBinary。

import os.path

env = Environment()
env.Append(CCFLAGS='-g -Wall -ansi -O2')

prefix = '/usr/local'
lib_dir = os.path.join(prefix, 'lib')
bin_dir = os.path.join(prefix, 'bin')
Export('env prefix lib_dir bin_dir')

libMySharedLib = SConscript('libMySharedLib/SConscript')
MyBinary = SConscript('MyBinary/SConscript')

env.Alias('install', env.Install(lib_dir, libMySharedLib))
env.Alias('install', env.Install(bin_dir, MyBinary))

当我不使用命令行参数运行SCons时,将构建MySharedLib和MyBinary,但它也会尝试安装它们。我只在要求安装目标时才安装它们。我尝试了很多次,阅读了文档,但无法弄清楚。

最佳答案

默认情况下,并且在scons脚本中未设置任何目标时,scons会在'。'中构建每个目标。您可以使用默认功能控制默认构建的目标:

lib = SConscript('libMySharedLib/SConscript')
bin = SConscript('MyBinary/SConscript')

env.Alias('install', env.Install(lib_dir, lib))
env.Alias('install', env.Install(bin_dir, bin))

# By default (scons called with no explicit target), only build bin
Default(bin)

AFAIK,尽管您可以创建一个虚拟目标,但没有办法告诉scons什么也不做。

关于scons - 用SCons实现 'install'目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/919147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com