当前位置:网站首页>1217_使用SCons生成目标文件
1217_使用SCons生成目标文件
2022-04-23 17:28:00 【grey_csdn】
在使用Makefile的时候,生成可执行文件、二进制文件与生成目标文件其实在语法上没有太大的差异,都是要生成target。不同点在于规则的执行有差异,毕竟调用的不同命令甚至是不同的工具。
在SCons中,target这样的理念被换了一种叫法以及形式,感觉上这个工具管理构建过程的时候更加专注于子过程了。而且,即使是官方的手册,看起来也把目标文件的生成独立成了单独的小章节。
这样,根据上面的例子来复现构建一下这个过程。采用的hello.c是之前的测试中用过的,内容也简单,不再列述。
创建配置文件SConstruct,并写上上面的内容。运行scons,效果如下:
这安阳,可以看出运行的效果,跟上面的提示不同的地方在于默认的编译器是不同的。其实,在运行的过程中还生成了一个dblite文件,看名称应该是一个数据库文件。可以列出隐藏文件看到:
关于编译环境的搭建,之前我也考虑过采用数据库来替代掉Makefile的方式,印象中写入过自己的博客笔记。
值得注意的是,这一次的运行结果中并没有可执行文件生成。根据文档,在不同的平台上使用不同的编译器工具可能会有不同的效果,一般用来说明Windows平台的时候使用的编译器都是VS。在我自己接触的工作项目中,VS用得少,更多还是类似POSIX的这种用法。
文档中的两个关键词我涂黄了,这里提到了一个builder的概念,更准确说应该是builder method。这次用以生成object文件的Object就是一个典型的代表,以前用的Program应该也是。算是sSCons中的一个术语吧,我觉得可能是这一套工具体系中的一些元操作,后续我需要掌握积累的也就是类似的元素。
顺便补充一个之前没有总结的小知识点,那就是make clean的对等操作。在SCons中对等的操作是scons -c,具体的效果如下:
这个功能在上面简单的配置中就是已经支持的了,比较方便。可以看得出来,在初始的上手过程中scons相比Makefile来说还是有一些简单简洁的优势的。
增补一条知识:前面的编译的截图中看得到scons在执行编译的时候输出了很多提示信息,如何减少这样的信息输出呢?可以执行scons -Q,-Q的参数可以让输出信息减少。
版权声明
本文为[grey_csdn]所创,转载请带上原文链接,感谢
https://greyzhang.blog.csdn.net/article/details/124359447
边栏推荐
- Shell-cut命令的使用
- stm32入门开发板选野火还是正点原子呢?
- Clickhouse table engine
- Node template engine (EJS, art template)
- SiteServer CMS5. 0 Usage Summary
- Error in v-on handler: "typeerror: cannot read property 'resetfields' of undefined"
- [markdown notes]
- 1-3 nodejs installation list configuration and project environment
- tidb-server 的配置文件在哪里?
- Using quartz under. Net core -- general properties and priority of triggers for [5] jobs and triggers
猜你喜欢
[ES6] promise related (event loop, macro / micro task, promise, await / await)
groutine
Bottom processing of stack memory in browser
JVM类加载机制
Shell script -- shell programming specification and variables
Document operation II (5000 word summary)
Advantages and disadvantages of several note taking software
文件操作《二》(5000字总结篇)
On lambda powertools typescript
Milvus 2.0 détails du système d'assurance de la qualité
随机推荐
1-2 characteristics of nodejs
Baidu Map Case - modify map style
freeCodeCamp----prob_ Calculator exercise
1-2 JSX syntax rules
C# Task. Delay and thread The difference between sleep
ASP. Net core configuration options (Part 1)
Come out after a thousand calls
Using quartz under. Net core -- operation transfer parameters of [3] operation and trigger
Milvus 2.0 质量保障系统详解
1-5 nodejs commonjs specification
Conversion between hexadecimal numbers
C dapper basically uses addition, deletion, modification and query transactions, etc
Use of shell awk command
1-1 NodeJS
C语言程序设计之函数的构造
C语言函数详解
Use of five routing guards
Promise (II)
Using quartz under. Net core -- a simple trigger of [7] operation and trigger
Aiot industrial technology panoramic structure - Digital Architecture Design (8)