1217_使用SCons生成目标文件
全部学习汇总: GitHub - GreyZhang/g_SCons: A new member in my toolbox, looking forward to replacing make tool later.
在使用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的参数可以让输出信息减少。
1217_使用SCons生成目标文件相关推荐
- 程序员的自我修养--链接、装载与库笔记:目标文件里有什么
编译器编译源代码后生成的文件叫做目标文件.目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整.其实它本身就是按照可执行文件格式存储的, ...
- C语言 目标文件和可执行文件(ELF文件)
转自:https://www.jianshu.com/p/7c609b70acbd 1.C语言创建程序 1.1C语言创建(分为4个步骤) 编辑 编译 链接 执行 编辑:就是创建和修改C程序的源代码-我 ...
- VS2013生成DLL文件
1.打开VS2013,创建项目,点DLL,输入项目名称,MakeDll,添加新项,来创建头文件MakeDll.h: MakeDll.h #define DLL_API __declspec(dllex ...
- 链接装载与库:第三章——目标文件里有什么(ELF文件结构)
文章目录 一.ELF文件的格式 二.ELF文件是什么样的 三.挖掘SimpleSection.o 3.1 代码段 3.2 数据段和只读数据段 3.3 BSS段 3.4 其他段 3.5 自定义段 四.E ...
- Java根据模板生成excel文件【Java】【EasyExcel】【xls】
Background 前两天客户反应对数据导出的文件格式不太满意,然后给了我们模板,让我们按照模板导出数据.于是一通修改(excel数据量有限制他们也不管,之前我们给的csv格式). Java操作ex ...
- 「实战教程」如何使用POI读取模板PPT填充数据并拼接至目标文件
文章目录 一.PPT文件格式介绍 1.PPT文件格式的概述 2.HSLF和XSLF的区别 3.如何选择合适的POI类库 二.SlideShow 三.读取PPT文件 1. 加载PPT文件 2. 获取PP ...
- 《程序员的自我修养》第3章---目标文件里有什么
第3章 目标文件里有什么 3.1 目标文件的格式: 编译器编译源代码后生成的文件叫做 "目标文件". 目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程, ...
- 使用 ld 命令链接目标文件生成可执行文件
1.目标文件生链接成可执行文件依赖的库和目标文件 使用 ld 链接目标文件生成可执行文件,用于取代命令 g++,仅仅用于学习 ld 命令的使用,不用于实际的项目编译. 首先看一个简单的 C++ 源文件 ...
- Java找不到目标文件,java-构建后生成的目标文件不包含必须已经...
在构建项目时,控制台显示源包已编译(px10包中的一个) 但是,如果我看到生成的目标文件,则源包中没有任何类. >尝试过清洁建立几次,但无济于事 >从- / var / cache /清除 ...
最新文章
- word 转html utf8 在线_pdf转word在线转换器:办公必备工具安利!
- CentOS7安装笔记:minio分布式集群搭建
- SQL Server 2000从入门到精通3
- 6.24AppCan移动开发者大会价值30万的展示机会归了谁?
- jq 点击导航添加背景_jq入门(2)css选择符
- ip设置 kali 重置_和我一起配置黑客系统kali,带你成为大牛,你真的准备好了吗?...
- Android 切换卡(TabWidget)
- FreeMarker 语法
- java int stack_java stack总结
- 建模方法(四)-因子分析定义和应用
- 后台 事务SqlTransaction
- 最近发现谷歌浏览器打开网页速度很慢,比IE都慢
- Utgard连接OPC Server常见故障码及解决方案
- 雷军北大15分钟演讲:我至少有胆量去想
- vivox21支持html,vivo X21支持快充吗_vivo X21支持无线充电吗-太平洋IT百科
- 那些警示良言——韩愈
- 【2022年1月1日更新】宝塔+青龙+Nvjdc一对一推送+wskey智能化+管理员推送+Ninja+SaoBing面板+kingfeng+go-cqhttp/qqbot
- ThingsBoard 使用
- 深入简出 SQL窗口函数
- 我对所谓电信运营商重组和3G发牌的看法
热门文章
- ffmpeg源码精读1,音视频处理概述
- vue使用报错记录(cli4):[vue/valid-v-for] Custom elements in iteration require ‘v-bind:key‘ direc
- MAC Nginx配置: open() “xxx/logs/error.log“ failed (2: No such file or direc
- 一文搞清楚opengl、openglES、GLEW、的关系GLUT、FreeGLUT、GLFW
- 语音处理/语音识别基础(六)- 语音的端点检测(EPD/VAD)
- 电影数据分析——国产烂片深度揭秘
- 一个高速交警的忠告(转)
- 编写python程序按照单利方式计算理财产品收益
- 分享48个Go源码,总有一款适合您
- 计算机睡眠无法锁屏是怎么设置密码,教你电脑待机锁屏怎么设置