C++工程中的各种文件
- 格式:doc
- 大小:19.00 KB
- 文档页数:2
cmakelists.txt路径的技巧(实用版3篇)目录(篇1)1.引言:介绍 cmakelists.txt 文件的重要性2.cmakelists.txt 文件的基本概念3.如何使用路径技巧优化 cmakelists.txt 文件4.实际案例:展示如何使用路径技巧优化 cmakelists.txt 文件5.总结:cmakelists.txt 文件路径技巧的优势和意义正文(篇1)引言:在 CMake 工程中,cmakelists.txt 文件是构建过程中的核心部分,它包含了所有构建步骤的指令。
学会如何有效地管理和组织cmakelists.txt 文件中的路径技巧,可以极大地提高构建效率。
本文将介绍一些有关 cmakelists.txt 文件路径技巧的知识,帮助大家更好地理解和应用这些技巧。
cmakelists.txt 文件的基本概念:cmakelists.txt 文件是 CMake 的构建系统中的一个重要组成部分,它包含了构建过程中所需的所有信息。
cmakelists.txt 文件通常分为三个部分:变量定义、构建规则和构建目标。
其中,变量定义用于设置各种参数,构建规则用于指定如何编译源文件,构建目标则定义了最终要构建的可执行文件。
如何使用路径技巧优化 cmakelists.txt 文件:为了提高 cmakelists.txt 文件的可读性和可维护性,我们可以使用以下路径技巧:1.使用相对路径:相对于项目根目录,使用相对路径可以使cmakelists.txt 文件更加简洁。
例如,如果要包含一个名为“include”的目录,可以使用“${PROJECT_DIR}/include”这样的相对路径。
2.使用 CMake 变量:CMake 提供了一些内置变量,可以用于表示项目中的路径。
例如,使用“${CMAKE_SOURCE_DIR}”表示项目源代码目录,使用“${CMAKE_BINARY_DIR}”表示项目可执行文件目录。
附录三 C 类文件一、表格说明1.总说明(1)C 类表格分为工程通用表格、工程检测表格、土建工程表格、站内工艺安装工程表格、集输管道安装工程表格、球罐制造安装工程表格、锅炉安装工程表格、电气安装工程表格、自动化仪表安装工程表格、通信安装工程表格、道路桥梁工程表格和隧道工程表格12类。
(2)由于各地方建设行政管理部门对工程检测、锅炉安装、建筑工程表格样式有具体规定,为适应各地方基建行业相关要求,本手册中仅列出此3类表格的名称和编号,具体表格样式可执行工程所在地规定,或直接采用国家认可的有关机构出具的表格。
(3)由于行业特殊性,长输管道工程交工技术表格本手册未做规定。
(4)C 类表格编号及工程编号填写说明。
① 表格编号说明: ³³一³³同类表格顺序号表格专业分类编码(专业分类中两个关键字各取前一个拼音字母) 例如:TY-01为工程“通用”表格中的第一个表格。
② 表格中工程编号填写说明。
a.工程编号由分部、子分部、分类、顺序号4组代号组成,组与组之间应用横线隔开,具体编写如下:b.属于单位工程整体管理内容的资料,编号中的分部、子分部工程代号可用“00”代替。
c.同一厂家、同一品种、同一批次的施工物资用于两个分部、子分部工程时,资料编号中的分部、子分部工程代号可按主要使用部位填写。
(5)C 类表格应符合工程档案组卷要求。
除另有规定外,C 类表格的纸张尺寸为A4(297 mm ³210mm )版面,其页边距设置为左侧30mm ,上、下、右各为20mm ;左边界装订,字体为标准宋体字。
(6)检验批质量验收记录执行国家、地方和行业相关质量验收规范,根据主管部门对各专业检验批表格保存方法的相关要求进行归档。
(7)针对目前油气田地面工程常见的橇装设备,应区分两种情况进行管理。
第一类为签订采购合同,整体运送到现场的橇装设备,此类橇装设备应按照1台静止(或转动)设备进行管理,填写设备整体的验收及安装的相关资料表格;第二类为签订工程施工合同,由施工单位在现场将各分散设备、管道等元件组装成橇,此类橇装设备应按照工程施工进行管理,针对橇上的每一台单独设备、管道、电气及仪表设备填写验收及安装的相关资料表格。
GEL概述GEL(General Extension Language通用扩展语言)是一种类似于C 语言的一种解释性语言,它可以创建GEL函数,以扩展CCS用途。
GEL是C语言的一个子集,然而它不能声明主机变量,所有的变量必须在DSP程序中定义,存在于仿真/实际目标板中,唯一不在目标板上定义的标识符是GEL函数及其参数。
GEL函数可在任何能键入C表达式的地方调用,既可以在任何可键入C表达式的对话框中调用,也可以在其他GEL函数中调用;但不支持递归。
在实际应用中,用户只需要要按照GEL的语法,建立GEL文件并将其加载到CCS中。
加载GEL文件后,为GEL菜单增加新的功能选项,这给调试程序时自动测试以及用户自定义工作空间带来很大方便。
注意:GEL对于硬件仿真环境是没有太大用处的,但在软件仿真环境下,GEL可以为用户产生一个虚拟的DSP硬件初始化环境。
1、在GEL菜单中添加GEL函数在一个工程项目中,可以将常用的GEL函数添加到CCS的GEL菜单下,此时需要使用menuitem关键词在GEL菜单下创建一个新的下拉菜单列表(一级菜单),再使用hotmenu,dialog和slider等关键词,在该菜单项中添加新的菜单项(二级菜单)。
2、GEL文件的加载和卸载对于包含一个或多个GEL函数的文件(.gel),编写好后,必须将其加载到CCS中才能调用GEL文件中的GEL函数。
有两种加载GEL 文件的方法:②选择File→Load GEL菜单项,从文件夹中选择GEL文件加载。
②在工程窗口中,右击GEL File文件夹,在弹出的快捷菜单中选择Load GEL,然后从文件夹中选择GEL文件加载。
GEL文件一旦加载,其中的GEL函数将一直驻留在内存中,直到将其卸载为止。
当一个加载的GEL文件更改后,必须先将其卸载,然后再重新加载才能使更改生效。
GEL文件的卸载很简单,右击欲卸载的GEL文件名,从弹出的局势菜单中选择Remove就可以了。
实验2(1) IAR for 8051 工程的创建理论回顾CC2530 单片机的代码开发均在IAR for 8051 上完成,因此要实现CC2530 单片机代码的开发就必须掌握IAR for 8051 开发环境的CC2530 单片机工程建立。
并加深对IAR for 8051 开发环境的了解。
实验目标2530 简易工程建立。
2.简易工程下载到CC2530 单片机查看运行效果。
实验环境硬件环境:PC 机Pentium 处理器双核2GHz 以上,内存4GB 以上操作系统:Windows7 64 位及以上操作系统开发环境:IAR for 8051 安装包实验器材:xLab 未来实验平台Lite 节点、CC2530 核心板实验配件:xLab 未来实验平台SmartRF 仿真器、12V 电源实验步骤1.创建原始工程1)打开IAR 开发环境,在菜单栏中通过点击File -> New -> Workspace 完成新工程的创建。
2)当Workspace 创建完成后IAR 将会产生一个空窗口。
3)点击Project -> Create New Project,Tool chain 中选择8051 内核单片机,然后点击”确认“创建一个新项目,设置文件名称后保存文件。
4)当新项目建立完成后IAR 将会在File 中产生一个创建的文件目录。
5)点击左上角的New document,代码框中会显示出一个空白的临时文件。
6)点击空白的临时空间后点击File -> Save As 将文件重新命名后保存到与之前创建保存的Workspace 相同文件夹中。
2.添加工程源码1)通过右键创建好的Project –> Add -> Add Files…找到创建的.C 文件,点击打开后,将创建好的C 文件加入到工程中。
2)当.C 文件添加完成后Files 框中就会显示加入到工程中的.C 文件名称,点击.C 文件可以打开加入到工程的文件。
一、单项选择题(每题2分,共20分)1. 工程档案是指工程项目在建设过程中形成的各种文件、图纸、照片、声像等资料的总称,以下哪项不属于工程档案的范畴?A. 设计文件B. 施工图纸C. 质量验收报告D. 项目可行性研究报告2. 以下关于工程档案管理制度的说法,正确的是:A. 工程档案管理制度应由建设单位自行制定B. 工程档案管理制度应与国家档案管理法规相一致C. 工程档案管理制度可由施工单位制定,无需上报主管部门D. 工程档案管理制度应由设计单位制定,报监理单位审核3. 工程档案的收集工作,下列哪项不属于其范围?A. 收集设计文件、施工图纸等原始资料B. 收集施工过程中的变更文件、验收报告等C. 收集工程项目的审批文件、合同等D. 收集工程项目竣工后的使用、维护资料4. 工程档案的整理工作,以下哪项不属于其基本要求?A. 按照时间顺序排列B. 按照文件类型分类C. 按照项目阶段划分D. 按照文件重要程度排序5. 工程档案的保管工作,以下哪项不属于其基本要求?A. 设置专门的档案室B. 按照国家档案管理法规进行分类存放C. 定期对档案进行整理、归档D. 允许档案随意借阅、复印6. 工程档案的利用工作,以下哪项不属于其范围?A. 为工程项目提供参考依据B. 为工程项目验收提供资料C. 为工程项目维护提供指导D. 为工程项目投资决策提供参考7. 工程档案的归档时间,以下哪项是正确的?A. 工程项目竣工后立即归档B. 工程项目验收合格后立即归档C. 工程项目投入使用后立即归档D. 工程项目结算完毕后立即归档8. 工程档案的归档范围,以下哪项不属于其范畴?A. 工程项目设计文件B. 工程项目施工图纸C. 工程项目验收报告D. 工程项目合同9. 工程档案的数字化工作,以下哪项不属于其基本要求?A. 对档案进行扫描、转换B. 对档案进行加密、解密C. 对档案进行备份、恢复D. 对档案进行分类、整理10. 工程档案的保密工作,以下哪项不属于其基本要求?A. 对涉密档案进行标识B. 对涉密档案进行保管C. 对涉密档案进行复制、传播D. 对涉密档案进行审查、批准二、多项选择题(每题3分,共15分)1. 工程档案管理制度的主要内容包括:A. 档案收集制度B. 档案整理制度C. 档案保管制度D. 档案利用制度E. 档案数字化制度2. 工程档案收集工作的要求包括:A. 完整性B. 及时性C. 准确性D. 保密性E. 真实性3. 工程档案整理工作的要求包括:A. 按照时间顺序排列B. 按照文件类型分类C. 按照项目阶段划分D. 按照文件重要程度排序E. 按照国家档案管理法规进行分类存放4. 工程档案保管工作的要求包括:A. 设置专门的档案室B. 按照国家档案管理法规进行分类存放C. 定期对档案进行整理、归档D. 允许档案随意借阅、复印E. 对档案进行备份、恢复5. 工程档案利用工作的要求包括:A. 为工程项目提供参考依据B. 为工程项目验收提供资料C. 为工程项目维护提供指导D. 为工程项目投资决策提供参考E. 为工程项目招标、投标提供资料三、判断题(每题2分,共10分)1. 工程档案管理制度应与国家档案管理法规相一致。
LabWindowsCVI(⼀):各⽂件类型的含义及初始项⽬的搭建1、基本定义虚拟仪器(VI)是计算机技术、仪器技术和通信技术相结合的产物。
虚拟仪器的⽬的是利⽤计算机强⼤资源使硬件技术软件化,分⽴元件模块化,降低程序开发的复杂程度,增强系统的功能和灵活性LabWindows/CVI是⼀个完全的ANSI C开发环境,⽤于仪器控制、⾃动检测、数据处理的应⽤软件使⽤LabWindows/CVI设计的应⽤程序可以脱离LabWindows/CVI开发环境独⽴运⾏,并可以打包⽣成.msi安装⽂件LabWindows/CVI主要采⽤事件驱动与回调函数⽅式,编程⽅法简单易学LabWindows/CVI⽂件类型⼯作空间⽂件(*.cws)通常包含的⽂件类型有如下六种:1、*.prj ⼯程⽂件是⼯程的主体框架,主要由*.uir⽂件、*.c⽂件、*.h⽂件组成。
程序调试运⾏后,可以⽣成可执⾏⽂件(*.exe)2、*.c C源程序。
他主要包含头⽂件、主程序⽂件和回调函数,其结构和C语⾔结构⼀致3、*.uir ⽤户界⾯⽂件,即⾯板⽂件。
该⽂件中包括菜单和各种控件资源4、*.h 在LabWindows/CVI中,头⽂件是由系统⾃动⽣成的。
它的作⽤⼀⽅⾯是便于打开和编辑,另⼀⽅⾯是确保编译器在编译时能引⽤它们5、*.fp 当打开⼯程的仪器驱动函数⾯板⽂件时,LabWindows/CVI⾃动加载仪器驱动⽂件6、*.lib 这类⽂件可能是DLL导⼊库⽂件,也可以是静态库⽂件2、构建⼀个简单程序1、建⽴⼯程⽂件 ——> (*.prj)File ——> New ——> Project(*.prj) 默认⽂件名为untitledFlie ——> Save Untitled Project As ... 保存新建的⼯程⽂件 (重命名)2、创建⽤户界⾯⽂件 ——> (*.h ,*.uir)(1) 创建空⾯板窗⼝File ——> New ——> User Interface(*.uir)(2) 向⾯板中添加控件点击⾯板,菜单栏出现 Create ,点击 Create 选择相应的控件进⾏添加或在⾯板右击选择添加(3) 保存File ——> Save Untitled.uir (重命名)3、⽣成源代码⽂件:(1)、⽣成全部源代码框架 (*.cws ,*.exe ,*.c ,cvibuild.项⽬名)Code ——> Generate——> All Code(2)、主函数及回调函数分布⽣成 ——> (*.c)a、⽣成主函数:Code ——> Generate ——> Mainb、保存⽂件Edit ——> Add Files to Project ——> Source(*.c) 把⽂件添加到该⼯程中来c、⽣成回调函数源代码框架i、⽤户界⾯菜单:Code ——> Preference ——> Default Control Events弹出控件回调事件对话框,选择该控件所要响应的事件,点击OK键ii、右击需要产⽣回调函数的控件选择 Generate Control Callback。
附录三C类文件一、表格说明1.总说明(1)C类表格分为工程通用表格、工程检测表格、土建工程表格、站内工艺安装工程表格、集输管道安装工程表格、球罐制造安装工程表格、锅炉安装工程表格、电气安装工程表格、自动化仪表安装工程表格、通信安装工程表格、道路桥梁工程表格和隧道工程表格12类。
(2)由于各地方建设行政管理部门对工程检测、锅炉安装、建筑工程表格样式有具体规定,为适应各地方基建行业相关要求,本手册中仅列出此3类表格的名称和编号,具体表格样式可执行工程所在地规定,或直接采用国家认可的有关机构出具的表格。
(3)由于行业特殊性,长输管道工程交工技术表格本手册未做规定。
(4)C类表格编号及工程编号填写说明。
①表格编号说明:××一××同类表格顺序号表格专业分类编码(专业分类中两个关键字各取前一个拼音字母)例如:TY-01为工程“通用”表格中的第一个表格。
②表格中工程编号填写说明。
a.工程编号由分部、子分部、分类、顺序号4组代号组成,组与组之间应用横线隔开,具体编写如下:b.属于单位工程整体管理内容的资料,编号中的分部、子分部工程代号可用“00”代替。
c.同一厂家、同一品种、同一批次的施工物资用于两个分部、子分部工程时,资料编号中的分部、子分部工程代号可按主要使用部位填写。
(5)C类表格应符合工程档案组卷要求。
除另有规定外,C类表格的纸张尺寸为A4(297 mm×210mm)版面,其页边距设置为左侧30mm,上、下、右各为20mm;左边界装订,字体为标准宋体字。
(6)检验批质量验收记录执行国家、地方和行业相关质量验收规范,根据主管部门对各专业检验批表格保存方法的相关要求进行归档。
(7)针对目前油气田地面工程常见的橇装设备,应区分两种情况进行管理。
第一类为签订采购合同,整体运送到现场的橇装设备,此类橇装设备应按照1台静止(或转动)设备进行管理,填写设备整体的验收及安装的相关资料表格;第二类为签订工程施工合同,由施工单位在现场将各分散设备、管道等元件组装成橇,此类橇装设备应按照工程施工进行管理,针对橇上的每一台单独设备、管道、电气及仪表设备填写验收及安装的相关资料表格。
建设工程合同与合同管理试题一、单项选择题1、公开招标是指()。
A.招标人以投标邀请书的方式邀请特定的法人或者其他组织投标B.招标人以招标公告的方式邀请不特定的法人或者其他组织投标C.发布招标广告吸引或者直接邀请众多投标人参加投标并按照规定程序从中选择中标人的行为D.有限招标2、招标人与中标人应当自中标通知发出之日()内,按招标文件和中标人的投标文件订立书面合同。
A.40天B.30天C.50天D.20天3、按照承包工程计价方式分类不包括()。
A.总价合同B.单价合同C.成本加酬金合同D.预算合同4、下列不是合同价款应规定的内容的是()。
A.计算方式B.结算方式C.价款的支付期限D.价款支付日期5、建设工程总承包合同的履行不包括()。
A.合同应明确双方责任B.建设工程总承包合同订立后,双方都应按合同的规定严格履行C.总承包单位可以按合同规定对工程项目进行分包,但不得倒手转包D.建设工程总承包单位可以将承包工程中的部分工程发包给具有相应资质条件的分包单位,但是除总承包合同中约定的工程分包外,必须经发包人认可6、建设工程项目一般应采用()。
A.公开招标方式B.邀请招标C.有限招标D.其他组织招标7、资格预审程序中应首先进行()。
A.资格预审资料分析B.发出资格预审通知书C.发布资格预审通告D.发售资格预审文件8、评标委员会推荐的中标候选人应当限定在(),并标明排列顺序。
A.l-2人B.l-3人C.1-4人D.1-5人9、招标人与中标人签订合同后()个工作日内,应当向中标人和未中标的投标人退还投标保证金。
A.2 B.3C.5 D.610、建设工程合同的最基本要素是()。
A.标的B.承包人和发包人C.时间D.地点11、下列不是依据承包工程计价方式的不同而分类的是()。
A.总价合同B.单价合同C.成本加酬金合同D.邀请合同12、下列不属于工程合同的付款阶段的是()。
A.预付款B.工程进度款C.退还保留金D.价格调整条款13、下列不属于完善合同条件问题的是()。
3、C编程的各种源码⽂件1、C语⾔模块化编程中的头⽂件 实际开发中⼀般是将函数和变量的声明放到头⽂件,再在当前源⽂件中 #include 进来。
如果变量的值是固定的,最好使⽤宏来代替。
.c和.h⽂件都是源⽂件,除了后缀不⼀样便于区分外和管理外,其他的都是相同的,在.c中编写的代码同样也可以写在.h中,包括函数定义、变量定义、预处理等。
但是,.h 和 .c 在项⽬中承担的⾓⾊不⼀样:.c ⽂件主要负责实现,也就是定义函数和变量;.h ⽂件主要负责声明(包括变量声明和函数声明)、宏定义、类型定义等。
这些不是C语法规定的内容,⽽是约定成俗的规范,或者说是长期形成的事实标准。
根据这份规范,头⽂件可以包含如下的内容:可以声明函数,但不可以定义函数。
可以声明变量,但不可以定义变量。
可以定义宏,包括带参的宏和不带参的宏。
结构体的定义、⾃定义数据类型⼀般也放在头⽂件中。
在项⽬开发中,我们可以将⼀组相关的变量和函数定义在⼀个 .c ⽂件中,并⽤⼀个同名的 .h ⽂件(头⽂件)进⾏声明,其他模块如果需要使⽤某个变量或函数,那么引⼊这个头⽂件就可以。
这样做的另外⼀个好处是可以保护版权,我们在发布相关模块之前,可以将它们都编译成⽬标⽂件,或者打包成静态库,只要向⽤户提供头⽂件,⽤户就可以将这些模块链接到⾃⼰的程序中。
2、C语⾔标准库以及标准头⽂件 源⽂件通过编译可以⽣成⽬标⽂件(例如 GCC 下的 .o 和 Visual Studio 下的 .obj),并提供⼀个头⽂件向外暴露接⼝,除了保护版权,还可以将散乱的⽂件打包,便于发布和使⽤。
实际上我们⼀般不直接向⽤户提供⽬标⽂件,⽽是将多个相关的⽬标⽂件打包成⼀个静态链接库(Static Link Library),例如 Linux 下的 .a 和 Windows 下的 .lib。
打包静态库的过程很容易理解,就是将多个⽬标⽂件捆绑在⼀起形成⼀个新的⽂件,然后再加上⼀些索引,⽅便链接器找到,这和压缩⽂件的过程⾮常类似。
仓库管理规定c三级文件(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的实用资料,如管理制度、企业管理、岗位职责、心得体会、工作总结、工作计划、演讲稿、合同范本、作文大全、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!And, this store provides various types of practical materials for everyone, such as management systems, enterprise management, job responsibilities, experiences, work summaries, work plans, speech drafts, contract templates, essay compilations, and other materials. If you want to learn about different data formats and writing methods, please pay attention!仓库管理规定c三级文件第1篇仓库管理规定c三级文件仓库管理规定三级文件仓库管理规定仓库管理制度是指对仓库各方面的流程操作、作业要求、注意细节、7s管理、奖惩规定、其他管理要求等进行明确的规定,给出工作的方向和目标,工作的方法和措施;且在广的范畴内是由一系列其他流程文件和管理规定形成的,例如仓库安全作业指导书仓库日常作业管理流程仓库单据及帐务处理流程仓库盘点管理流程等等。
cmake 生成vs工程相对路径使用CMake生成Visual Studio工程是一种常见的编译方式,这种方式可以让开发者更加方便地管理、编译和调试项目。
在使用CMake生成工程时,我们需要使用相对路径来指定各种文件的位置,这样可以让工程更加灵活、可移植,也更加容易维护。
相对路径是指相对于当前目录的路径,它可以用来指定文件的位置、目录的位置等等。
相对路径的好处在于,它不受操作系统、硬件等因素的影响,可以在不同的环境下得到相同的结果。
在使用CMake生成Visual Studio工程时,我们可以使用以下命令来指定各种文件的位置:add_executable(myexe src/main.cpp)这个命令将src/main.cpp文件编译成myexe可执行文件,其中src是相对于当前目录的路径。
我们还可以使用其他命令来指定头文件的位置、库文件的位置等等,例如:include_directories(include)link_directories(lib)这两个命令分别用来指定头文件和库文件的位置,其中include和lib都是相对于当前目录的路径。
除了使用相对路径来指定文件位置外,我们还可以使用CMake的变量来动态地指定文件位置。
例如:set(SRC_FILES src/main.cpp)add_executable(myexe ${SRC_FILES})这个例子中,我们使用set命令将src/main.cpp文件的路径存储在SRC_FILES变量中,然后在add_executable命令中使用${SRC_FILES}来指定文件位置。
使用相对路径生成Visual Studio工程的好处在于,它可以让我们更加方便地管理工程,特别是在多平台或多人协作的情况下。
相对路径不仅可以让我们在不同的操作系统和硬件上得到相同的结果,还可以让我们更加灵活地组织工程结构,使得工程更加易于维护。
使用相对路径生成Visual Studio工程是一种非常方便的编译方式,它可以让我们更加方便地管理、编译和调试项目。
企口缝施工方案一、施工准备为保证企口缝施工质量,在施工前要求对人、机、料进行周密的安排布置,严格控制进场原材料质量,提高现场施工技术人员特别是一线操作工人的技术水平。
1.人员组织(1)、首先对所有参与施工的人员进行严格技术交底,使其充分掌握具体施工工艺,树立质量第一的意识。
组织以项目总工为主的技术培训会,使操作工人对盖梁结构型式等熟悉掌握,做到心中有数,使工人充分了解施工工艺,做到施工中忙而不乱,保证现场施工在受控、有序进行。
(2)、其次严格作业值班制度,保证现场每一作业时间段内都有主要施工负责人进行现场管理和技术指导工作,投入足够的施工一线人员,保证工人轮班作业,不搞疲劳战术。
2.材料组织根据现场施工组织情况,在施工前将所需材料提前运送至现场,所有进场材料均应经过试验室检验,并满足招投标文件对原材料各项指标的要求。
水泥:普通硅酸盐水泥。
砂:干净、质纯、细度模数符合要求,含泥量小于5%。
碎石:5~31.5mm。
水:采用符合混凝土用水标准的水源。
3.机械设备混凝土在腾晖商砼站拌和,混凝土用罐车运输,到现场用罐车直接浇筑,为防止临时停电,施工现场配备1台15KW内燃发电机作为备用电源。
二、施工方案施工工序:支底模板安装→混凝土浇筑→拆模、养护。
1、模板的制作及安装模板配备:采用PCV管做底模板。
模板安装模板采用人工进行安装,模板之间采用铁丝行连接,安装好的模板应线型顺适,接头紧密平整,位置准确。
(1)浇筑混凝土时,发现模板有超过允许偏差变形值的可能时,应及时纠正。
4、混凝土浇筑(1)、混凝土的拌制1)严格按混凝土配合比拌制混凝土,混凝土搅拌完毕后,应检测混凝土拌和物的坍落度;浇筑过程中要严格控制混凝土的坍落度及和易性。
2)应检查混凝土拌和物的均匀性,混凝土拌和物应拌和均匀颜色一致,不得有离析和泌水现象。
(2)、混凝土的运输入模混凝土由罐车运送至现场,罐车直接浇筑企口缝内,远距离的用斗车人工运置现场浇筑。
嵌入式c语言头文件的建立与使用如何正确编写C语言头文件和与之相关联的c源程序文件,这首先就要了解它们的各自功能。
要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程。
一般说来编译器会做以下几个过程:1.预处理阶段2.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件(.obj文件)3.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件。
编译器在编译时是以C文件为单位进行的,也就是说如果你的项目中一个C文件都没有,那么你的项目将无法编译,连接器是以目标文件为单位,它将一个或多个目标文件进行函数与变量的重定位,生成最终的可执行文件。
为了生成一个最终的可执行文件,就需要一些目标文件,也就是首先要有C文件,而这些C文件中又需要一个main()函数作为可执行程序的入口,那么我们就从从这一个C文件入手,引入头文件概念。
假定这个C文件内容如下:#include<stdio.h>#include"mytest.h"int main(int argc,char**argv){test=25;printf("test........... %d\n",test);}头文件"mytest.h"包含如下内容:int test;现在以这个例子来讲解编译器的工作:1.预处理阶段:编译器以C文件作为一个单元,首先读这个C文件,发现第一句与第二句是包含一个头文件,就会在所有搜索路径中寻找这两个文件,找到之后,就会将相应头文件中的宏,变量,函数声明,嵌套的头文件包含等,进行依赖关系检测,并进行宏替换,看是否有重复声明与定义的情况发生,最后将那些文件中所有的东东全部扫描进这个当前的C文件中,形成一个中间"C文件"2.编译阶段,在上一步中相当于将第二个头文件中的test变量扫描进了一个中间C文件,那么test变量就变成了这个文件中的一个全局变量,此时就将所有这个中间C文件的所有变量,函数分配空间,将各个函数编译成二进制码,按照特定目标文件格式生成目标文件,在这种格式的目标文件中进行各个全局变量,函数的符号描述,将这些二进制码按照一定的标准组织成一个目标文件3.连接阶段,将上一步成生的各个目标文件,根据一些参数,连接生成最终的可执行文件,主要的工作就是重定位各个目标文件的函数,变量等,相当于将个目标文件中的二进制码按一定的规范合到一个文件中。
今天有人问我:#include能不能include一个(多个.c文件)?偶的回答是:从理论上讲可以,但是不推荐。
为什么经常见到include .h文件而不是include .c文件?或者说include是不是就是为包含.h文件设定的语法?这个问题的答案偶不知道,没有见有文档记载、说明这个问题。
不过从语法角度讲,include的意思就是从当前位置包含另外一个文件,就象宏替换一样把当前行用另外一个文件的整个内容替换掉。
从这点讲,include .c文件是可行的,c编译器完全能够正常处理。
但是为什么不常见include .c文件?我想从两个方面可以得到一点解释。
一就是,从设计角度上讲,源代码区分为.h和.c文件,是为了接口与实现的分离,实际上两者没什么本质的差别。
.h文件提供接口,.c文件提供具体的实现,两者可以一一对应,也可以不一一对应,没有强制要求。
一个.c文件做为一个模块的实现,有可能要跟其他的模块打交道,这个时候就需要include其他模块的接口(其他模块的.h文件);而包含其他模块的实现(.c文件)是没有意义的、危险的。
二就是从编译角度上来讲,make对同名的.h和.c之间提供隐讳规则的支持,就是说在makefile中不必显式指定一个.c文件依赖于同名的.h文件,就能达到显示指定这一依赖规则的作用。
这个规则的副作用就是,如果.c文件中包含了另外的.c文件,除非在Makefile中显示指定这种依赖规则,否则make不会自动添加这种依赖关系。
这样,很多时候被包含的.c文件改变了,原本需要重新编译的模块得不到重新编译(除非你手动删除对应的.obj或者执行rebuild),这样的话对工程管理和排错都造成了很大的障碍。
所以,我们不应该在项目中include .c文件,这样使用者出于直觉很难想到这里会有问题,增加了排错的难度。
前几天偶移植一个国际知名大公司的代码就遇到了这个问题,耗费了半天的时间查看了全部的源码和makefile才发现了这个不常见编译现象。
c/c++工程中的各种文件【转】
lib是和dll对应的。
lib是静态链接库的库文件,dll是动态链接库的库文件。
所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。
所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运行。
lib,dll,exe都算是最终的目标文件,是最终产物。
而c/c++属于源代码。
源代码和最终目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目标文件。
比如说一个exe需要很多的cpp文件生成。
而编译器一次只能编译一个cpp文件。
这样编译器编译好一个cpp 以后会将其编译成obj,当所有必须要的cpp都编译成obj以后,再统一link成所需要的exe,应该说缺少任意一个obj都会导致exe的链接失败。
1.obj里存的是编译后的代码跟数据,并且有名称,所以在连接时有时会出现未解决的外部符号的问题。
当连成exe后便不存在名称的概念了,只有地址。
lib就是一堆obj的组合。
2.理论上可以连接obj文件来引用其他工程(可以认为一个obj文件等价于编译生成它的cpp文件,可以引用obj来替换cpp,也可以添加cpp来替换obj ),但实际中通常用lib来实现工程间相互引用。
3.编译器会默认链接一些常用的库,其它的需要你自己指定。
lib和DLL的区别
(1)lib是编译时需要的,dll是运行时需要的。
如果要完成源代码的编译,有lib就够了。
如果也使动态连接的程序运行起来,有dll就够了。
在开发和调试阶段,当然最好都有。
(2) 一般的动态库程序有lib文件和dll文件。
lib文件是必须在编译期就连接到应用程序中的,而dll 文件是运行期才会被调用的。
如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。
如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。
静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。
但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。
(3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件(实际上也算是一个静态库,只是在链接时只能把函数在DLL的入口链接到exe中,而不像真正静态链接库那样将函数体真正链接到exe 中,通过lib进行的动态链接实际上也使用了静态链接来实现),一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。
从上面的说明可以看出,DLL和.LIB文件必须随应用程序一起发行,否则应用程序将会产生错误。
DLL内的函数分为两种:
(1)DLL导出函数,可供应用程序调用;
(2)DLL内部函数,只能在DLL程序使用,应用程序无法调用它们
创建静态链接库和创建动态链接库
VC6中创建[Win32 Dynamic-Link Library]工程便可以创建出一个空的DLL工程.
VC6中创建[Win32 Static Library]工程便可以创建出一个空的LIB工程(静态链接库工程,仅生成一个lib文件).
添加lib文件的常用办法有二个:
1、把*.lib放在VC的Lib目录中
2、修改project setting的Link->Input中的Addtional library path,加入你的目录dll:是可实际运行的二进制代码,有定位代码的!
3、也可以在object/library中直接写上lib文件路径.(这里实际上是可以写上任意obj文件或者lib 文件的).
.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。
附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成LIB文件。
如果要完成源代码的编译和链接,有头文件和lib就够了。
如果也使动态连接的程序运行起来,有dll就够了。
在开发和调试阶段,当然最好都有。
.h .lib .dll三者的关系
H文件作用是:声明函数接口
DLL文件作用是: 函数可执行代码
当我们在自己的程序中引用了一个H文件里的函数,编链器怎么知道该调用哪个DLL文件呢?这就是LIB文件的作用: 告诉链接器调用的函数在哪个DLL中,函数执行代码在DLL中的什么位置,这也就是为什么需要附加依赖项 .LIB文件,它起到桥梁的作用。
如果生成静态库文件,则没有DLL ,只有lib,这时函数可执行代码部分也在lib文件中
目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。
静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。
比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子。
动态库一般会有对应的导入库,方便程序静态载入动态链接库,否则你可能就需要自己LoadLibary 调入DLL文件,然后再手工GetProcAddress获得对应函数了。
有了导入库,你只需要链接导入库后按照头文件函数接口的声明调用函数就可以了。
导入库和静态库的区别很大,他们实质是不一样的东西。
静态库本身就包含了实际执行代码、符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。
【注】以上内容均只从简单的易理解的角度阐述了各个文件的关系。
若要了解详情,请参阅《程序员的自我修养——链接、装载与库》和《链接器与加载器》。