首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为scons指定一个目录来存储所有的.o(中间)文件?

SCons是一个软件构建工具,用于自动化构建和管理项目。它使用Python脚本作为构建脚本,并根据依赖关系自动构建项目。在SCons中,可以通过设置构建环境变量来指定存储中间文件(.o文件)的目录。

要为SCons指定一个目录来存储所有的.o文件,可以使用SCons的构建环境变量来设置中间文件目录。在构建脚本中,可以使用VariantDir函数来指定中间文件目录,并将其与源文件目录进行关联。

以下是一个示例构建脚本,演示如何为SCons指定一个目录来存储所有的.o文件:

代码语言:python
代码运行次数:0
复制
# 导入SCons模块
import os
import SCons.Script

# 创建构建环境
env = SCons.Script.Environment()

# 指定中间文件目录
obj_dir = os.path.join(os.getcwd(), 'obj')
env.VariantDir(obj_dir, '.', duplicate=0)

# 构建目标
env.Program('main', ['main.cpp', 'foo.cpp', 'bar.cpp'])

在上述示例中,VariantDir函数用于指定中间文件目录,os.getcwd()用于获取当前工作目录,obj是中间文件目录的名称。duplicate=0参数用于禁止在源文件目录中生成.o文件的副本。

通过以上设置,SCons将会将所有的中间文件(.o文件)存储在指定的目录中,而不是默认的源文件目录中。

请注意,这只是一个示例,实际使用时可以根据项目的需求进行调整。另外,关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,因此无法提供相关链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RTT 是如何管理和构建工程的?

前言 rtthread 是一个功能强大,组件丰富的物联网操作系统。它相比于其他的 RTOS 的一个主要区别之一,也就是它不仅仅是一个实时内核,还具备丰富的中间层组件。...下面笔者将从一个工程的目录结构开始进行阐述。 工程目录结构 下图是一个STM32f4 基于 rtt 的一个工程目录: ?...小结 上述简单叙述了一个 rtconfig.h 文件的配置过程,总结一下也就是在工程的根目录下使用 env 工具执行 menuconfig 命令时会出现 rtt 系统的配置界面,所有的配置选项都是通过读取工程根目录下的...再来看 SConscript ,一般来讲,每个存放着源代码的子目录下都会放置着一个 SConscript,如果想要将自己的一些源代码加入到 Scons 编译环境中,一般可以创建或修改已有的 SConscript...src 可以看到这里的 src 代表的意思就是将当前文件夹下的所有 .c 文件加入到 Application 中,这里也可以控制指定文件加入到对应的 group 中。

1.3K10
  • 在Windows下使用linux的命令行工具

    如果你习惯了linux的命令,可以在windows上安装这款GnuWin32实现相关的设置。...从这里继续, 5.下载gnuwin32安装,中间可能需要下载一段时间,选择稍快的镜像,我这里校园网大约用了二十分钟多些。download.bat运行完之后是install.bat。静等安装完成。...实际上cmd的深黑色对看久了会心情抑郁,而且损伤视力.. 7.在目录下执行scons,会发现依然无法找到sconstruct中内嵌的linux中断命令。这里需要将所有的命令改成绝对地址。...如果遇到禁止访问等问题,有可能是NTFS系统权限限制,也有可能是在什么地方有一个小size的链接文件无法识别。...,:c:\GnuWin32\ 2,将GnuWin32目录下bin路径添加到windows环境变量中 现在你就能使用你刚从gnuwin32网站下载到得命令工具了 3,缺少的工具可以在http://sourceforge.net

    5.1K20

    gem5初探

    我主要是入门一下gem5.我的系统是ubuntu16.04,主要流程如下 从github下载源码 git clone https://github.com/gem5/gem5.git 解压之后在解压目录执行...(这算是一个坑) 安装一堆需要的软件 sudo apt-get install mercurial scons swig gcc m4 python python-dev libgoogle-perftools-dev...apt-get install libboost-dev # 安装2.6.1版本的protoc用于输出trace sudo apt-get install protoc 编译gem5,这里需要按照指定的架构编译...apt-get install gcc-arm-linux-gnueabi 执行编译,注意要静态编译(第二个坑) arm-linux-gnueabi-gcc -static xxx.c -o a.out...,就是提示没有参数,我就打开了se.py文件看了一下它的代码,发现在解析参数的地方有点问题,我也不清楚是因为python的原因还是啥原因,我就把se.py文件里解析参数的地方直接options.cmd=

    1.9K20

    cmake使用

    image.png cmake image.png CMake是一个跨平台的安装编译工具,可以用简单的语句描述所有平台的安装编译过程。...他能够输出各种各样的makefile或者project文件,能测编译器支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。...Cmake 并不直接建构出最终的软件,而是产生标准的建构档( Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用...这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。...文件 aux_source_directory(dir VAR) 发现一个目录下所有的源代码文件并将列表存储一个变量中。

    2K30

    Godot-GDExtension C++ 环境搭建 (Docker+MinGW跨平台)

    Scons一个基于 Python 的软件构建工具,类似于 make 和 cmake,由于使用 Python 语法,编写上更加灵活,适用于复杂的项目场景。...scons 版本依赖于 Python 版本,考虑到之后 scons 的版本更新,不能将基础镜像指定为特定版本的 Python,所以这里选择了 conda 虚拟环境,可以在镜像构建时指定 Python 版本和...之后指定 Python 版本建立激活虚拟环境并安装 scons 编译工具,最后创建一个软链接,方便后续使用。...godot-cpp/bin 目录下生成,也可以通过 SConstruct 指定构建目标和生成位置。...SConstruct 文件scons 编译时的配置文件,可以指定编译目标、编译器、编译选项等,需要用户根据实际需求编写。官方提供了一个 SConstruct 文件 作为参考。

    43110

    monkeybuddy插件_v8引擎是什么意思

    另外,默认是使用VC的运行库的(即使用-MD编译参数),如果不喜欢,可以修改src/confg目录下的*.mk文件(比如把-MD改成-MT) 对于MinGW用户,请参考这里http://jargon.ca...如果没搞定,请静下心继续… 命令行编译方法 需要Python2.4以上版本(http://www.python.org ) 安装scons(http://www.scons.org ),这是一个python...进入“VC命令提示” 进入V8目录 设置Python路径 set path=c:/Python25;c:/Python25/Scripts;%path% 官方文档说到这一步输入scons就可以开始编译了...不过例外总是有的,比如我的VC2005就不行,一会儿说找不到cl命令,一会儿又找不到头文件-_- 我们得告诉它环境变量的值,这样写就可以了: scons env=”PATH:%path%,INCLUDE...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    44710

    Linux makefile 教程 非常详细,且易懂

    一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为...一般来说,每个源文件都应该对应于一个中间目标文件O文件或是OBJ文件)。 链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件O文件或是OBJ文件链接我们的应用程序。...在默认情况下,对于中间目标,它和一般的目标有两个地方不同:第一个不同是除非中间的目标不存在,才会引发中间规则。...第二个不同的是,只要目标成功产生,那么,产生最终目标过程中,产生的中间目标文件会被以“rm -f”删除。 通常,一个被makefile指定成目标或是依赖目标的文件不能被当作中介。...你还可以把你的目标,以模式的方式指定:%.o)成伪目标“.PRECIOUS”的依赖目标,以保存被隐含规则所生成的中间文件

    4.3K20

    Linux入门学习笔记(一)

    7月 18 00:38 install.log 权限位是十位 第一位:代表文件类型 - 普通文件 d 目录文件 l 链接文件 其他九位:代表各用户的权限 (前三位=属主权限u 中间三位...=属组权限g 其他人权限o) r 读 4 w 写 2 x 执行 1 权限对文件的含义:r:读取文件内容 :cat、more、head、tail w:编辑、新增、修改文件内容 ...,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效; -$:保存第一个被压缩文件所在磁盘的卷册名称; -:压缩效率是一个介于1~9的数值 unzip zip 命令 生成的zip文件...被压缩的文件 -d 指定文件解压缩后所要存储目录 -n 解压缩时不要覆盖原有的文件 -o 不必先询问用户,unzip 执行后覆盖原有文件 -q 安静模式,执行时不显示任何信息...-l 显示压缩文件包含的文件 -f 更新现有的文件 -t 检查压缩文件是否正确,但不解压 -u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录

    74320

    Makefile经典教程(掌握这些足够)

    一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为...一般来说,每个源文件都应该对应于一个中间目标文件O文件或是OBJ文件)。 链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件O文件或是OBJ文件链接我们的应用程序。...在默认情况下,对于中间目标,它和一般的目标有两个地方不同:第一个不同是除非中间的目标不存在,才会引发中间规则。...第二个不同的是,只要目标成功产生,那么,产生最终目标过程中,产生的中间目标文件会被以“rm -f”删除。 通常,一个被makefile指定成目标或是依赖目标的文件不能被当作中介。...你还可以把你的目标,以模式的方式指定:%.o)成伪目标“.PRECIOUS”的依赖目标,以保存被隐含规则所生成的中间文件

    2.7K20

    如何在树莓派2上移植rt-thread操作系统

    2.2.中断向量初始化 这里需要指定中断向量表,指定中断函数的处理函数。根据armv7的体系架构,整理中断向量表的偏移。然后初始化rt-thread中断向量表的初始化。...可以通过命令操作系统,查看信息。树莓派有两个串口,一个是直接通过内部时钟驱动的mini uart。另外一个是pl011串口模块,两者操作的寄存器地址不一样。 以上5点也是整个最小系统移植关键。...然后进入到工程目录/bsp/raspi2。这里需要修改的是rtconfig.py文件中的GCC路径。 ? 这里需要改成自己的gcc路径。...然后将刚才编译好的文件放到SD卡目录中。 SD卡文件只留下这三个文件就可以了,其中kernel7.img就是我们刚才用scons编译出来的rtthread固件。 ?...笔者只是改了一些bsp文件。 CPU相关 与cpu相关的在bsp/raspi2/cpu目录下。 启动从start_gcc.S开始。上下文切换在context_gcc.S文件中。

    97920

    全网最牛Linux内核Makefile系统文件详解(纯文字代码)

    一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为...一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ 文件)链接我们的应用程序。...如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下“make clean”就可以了。...它可以指定不同的文件在不同的搜索目录中。这是一个很灵活的功能。...例如,我们有一个目录叫subdir,这个目录下有个Makefile文件,指明了这个目录文件的编译规则。

    3.2K20

    Ubuntu 18.04.6无root权限安装cmake3.13.5

    super CMake概述 CMake是一个跨平台的安装(编译)工具,可以用简单的语句描述所有平台的安装(编译过程)。...他能够输出各种各样的makefile或者project文件,能测试编译器支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。...这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。...CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。...可以通过add_subdirectory()命令把子目录的CMake源文件添加进来。 CMake源文件中所有的语句都是命令,可以是内置命令或自定义的函数/宏命令。

    86510

    基于 Hi3861 平台的 HarmonyOS Device 开发体验

    环境搭建篇 编程界有个传承了几十年的”规矩“--入门先从环境搭建开始,有的时候环境搭建比较简单,比如学习 HTML 编程,有浏览器就行;有时候又比较繁琐,比如 React Native 开发,需要安装...1.1 Remote - SSH[4]和 SFTP Drive 可能大家会有疑问,这两个玩意都是访问远程主机上文件的,装一个就行了吧?...# 安装 cd SCons-4.0.1/ python3 setup.py install # 创建软链接 ln -s /usr/local/python3/bin/scons /usr/bin/scons.../interfaces/kits/wifiiot_lite目录下.另外就是如果使用了外设接口编译的时候要注意对应的配置是否已经设置正常,比如我用到了 I2C,那么在编译配置文件vendor\hisi\hi3861...HarmonyOS Devic环境搭建-蜂鸣器乐理知识(出处:知乎-夜雪) 在我使用的 WIFI-IoT 套件中的蜂鸣器要想输出相同的频率,需要使用 PWM 接口控制。

    1.8K40

    gcc命令大全

    /usr/include)中搜索相应的文件;使用双引号,预处理程序 cpp 首先在当前目录中搜寻头文件,如果没有找到,就到指定的 dirname 目录中去寻找。...说明: 在编译一个包含许多源文件的工程时,若只用一条gcc命令完成编译是非常浪费时间的。...它要求 gcc 将所有的警告当成错误进行处理,这在使用自动编译工具( Make 等)时非常有用。...(3) -l Linux下的库文件在命名时有一个约定,就是应该以 lib 这3个字母开头,由于所有的文件都遵循了同样的规范,因此在用 -l 选项指定链接的库文件名时可以省去 lib 这3个字母。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.6K20

    Make

    ###一、make的功能: make是一个用来维护程序模块关系和生产可执行文件的工具,他可以根据程序修改的情况重新编译链接生成的中间代码或最终的可执行文件。...执行make命令需要一个Makefile文件定义整个项目的编译规则。makefile定义了模块间的依赖关系,指定文件的编译顺序,以及编译使用的命令。...Makefile也可以命名为makefile,若命名为其他文件名,则需要用-f或--file选项告知make哪一个是makefile文件。...文件指示:包括三个部分,一个类似于c语言中的include语句,可以将另一个makefile文件包含进来;二是根据情况指定makefile中的有效部分,就像c语言中的预编译#if一样;三是定义一个多行的命令....SUFFIXES:该目标的依赖被认为是一个后缀列表,在检查后缀规则时使用。 .SILENT:生成该目标文件的依赖文件执行的命令都不被打印,如果其后无依赖文件,则所有的命令都不会被打印。

    2K100
    领券