当前位置: 首页 > news >正文

做网站需要会哪些知识商城网站模板

做网站需要会哪些知识,商城网站模板,中专网站建设与管理就业前景,做it软件的网站提纲 1#xff09; 为什么在EPICS上编程 2#xff09;构建系统特性#xff1a;假设基本理解Unix Make 3#xff09;在libCom中可用的工具 1#xff09; 为什么在EPICS上编程 1、社区标准#xff1a;EPICS合作者知道和明白EPICS结构 2、在很多操作系统之间代码移值性…提纲 1 为什么在EPICS上编程 2构建系统特性假设基本理解Unix Make 3在libCom中可用的工具 1 为什么在EPICS上编程 1、社区标准EPICS合作者知道和明白EPICS结构 2、在很多操作系统之间代码移值性 使得C/C代码可移植不总是容易的。EPICS APIs在所有目标机上相同。支持LinuxMacWindow(MS, Cygwin, MinGW)Solaris vxWroks RTEMS等。 3、在操作系统之间构建的可移值性。 编译代码可能不是小事。EPICS Makefiles在所有主机上工作相同。支持Linux MacWindows(MS, Cygwin, MinGW)Solaris。 2 EPICS构建系统 1、用于在源代码树中Makefiles的构建规则的高级集合 需要GNU Make版本3.81及以上。从没有见过一个相同构建规则的集合。 自动规则imakepremake和Qmake都产生MakefilesCmake产生Makefiles或者Visual Stdio工程文件 2、为多种目标机架构构建而设计其它构建系统没有集成此功能 3、构建规则需要一个特定的应用程序布局 atop/configure目录 RELEASE file(s)若干CONFIG*和RULES*文件 b) Makefiles必须有特定的内容 设置TOP变量包含特定的CONFIG和RULES文件 Makefiles 1) 四种不同类型与此角色相关联 顶层 用于向下进入子目录(支持额外的构建目标) 结构的 用于向下进入子目录。 条件的 用于构建软件 启动 用于iocBoot/ioc目录 2 不同 a) 它们包含的那些configure/RULES* b) 那些规则检查来控制它们想做什么的那些变量 顶层Makefile 1) top/Makefile TOP . include $(TOP)/configure/CONFIG DIRS list of subdirectories aslo set *_DEPEND_DIRS here include $(TOP)/configure/RULES_TOP 2) 在第二个include行后添加任何其它的规则 3DIRS变量列出了要在其内递归构建的所有子目录。 4*_DEPEND_DIR变量控制子目录构建的顺序。 示例test_DENPEND_DIRS configure srctest子目录将在configure和src目录后被构建。设置*_DEPEND_DIR变量对于并行构建重要运行make -j将在所有子目录中同时构建 结构化的Makefile 1) 只用于向下进入子目录的Makefiles TOP ..        根据适合调整路径 include $(TOP)/configure/CONFIG DIR list of subdirectories aslo set *_DEPEND_DIR here include $(TOP)/configure/RULES_DIRS 2) 非常类似顶层Makefile 像之前设置DIRS和*_DEPEND_DIRS变量包含RULES_DIRS替代RULES_TOP 3 示例 top/exampleApptop/iocBoot 启动的Makefiles 1) 用于iocBoot/ioc目录的Makefiles TOP ../.. include $(TOP)/configure/CONFIG ARCH ioc目标架构 TARGETS 待构建的其它文件 include $(TOP)/configure/RULES.ioc 2) ARCH设置控制产生的TARGETS的内容 3已知TARGETS是 cdCommands只用于vxWorksenvPahts用于其它操作系统dllPath.bat用于windows架构relPath.sh用于cygwin 4) 可以在第二个include行后添加用于其它目标的规则。 构建的Makefiles 1) 用于编译软件的Makefiles TOP ../..        视情况而定调整路径 include $(TOP)/configure/CONFIG 在这里设置变量 include $(TOP)/configure/RULES 此处添加额外的规则和依赖 2构建的Makefiles必须被命名为Makefile不要’GNUmakefile‘或makefile。 3很多变量可用于控制构建什么 完整列表见应用开发者手册的第四章。 构建和/或安装什么 1受到一个命名最终产品的变量集合控制 INCC/C头文件(.h)LIBRARY静态的或者共享对象库(lib.a lib.so .dll)LOADABLE_LIBRARY共享对象库(lib.so .dll lib.dylib)PROD可执行的程序(.exe)TESTPROD可执行程序但不安装。OBJS对象文件(.o)SCRIPTS被解析的脚本。DBD数据库定义文件(.dbd)DBDINC记录类型或者菜单数据库定义文件DB数据库实例文件(.db .vbd)TARGETS其它构建目标可能需要构建规则在很多情况中你使用的名称不应该包括前缀/后缀 2指定名称的对象按照它们被构建被复制到合适的安装目录。例如top/include, top/lib/arch, top/bin/arch, top/dbd和top/db 限制构建 1通过使用这些变量限制构建目标为(所有)主机架构 PROD_HOST, TESTPROD_HOST, LIBRARY_HOST, LOADABLE_LIBRARY_HOST, OBJS_HOST, SCRIPTS_HOST 2) 通过使用这些变量限制构建为(所有)IOC架构 PROD_IOC, TESTPROC_IOC, LIBRARY_IOC, OBJS_IOC, SCRIPT_IOC 3) 通过使用这些变量限制构建为OS-specific架构 PROD_osclass, TESTPROD_osclass, LIBARY_osclass, LOADABLE_LIBRARY_osclassosclass可以是Linux vxWorks, Win32, Darwin, RTEMS或solaris示例仅为嵌入的目标构建库 LIBRARY_vxWorks myDev LIBRARY_RETMES myDev 指定源文件名称 1 如果一个Makefile仅创建一个目标(库可执行文件等)你可以添加所有源文件的名称到SRCS变量 SRCS myDev.c myDrv.c 2) 如果一个Makefile仅创建一个库你可以添加所有库源文件的名称到LIB_SRCS变量 LIBRARY myDev LIB_SRCS myDev.c myDrv.c 3) 如果一个Makefile仅创建一个可执行文件(PROD)你可以添加所有它的源文件的名称到PROD_SRCS变量 PROD myIOC PROD_SRCS myMain.c mySeq.st 4) 但使用name_SRCS变量通常最好 LIBRARY myLib myLib_SRCS parser.c scanner.cpp process.cpp PROD myTool myTool_SRCS tool.c 操作系统特定的源文件 1 你可以在源文件变量名称末尾添加_osclass来限制在什么OS上构建此代码 SRCS_osclassLIB_SRCS_osclassPROD_SRCS_osclassname_SRCS_osclass 2当设置_osclass变量时重要的_DEFAULT变量用于所有不带_osclass版本的OS的构建 3示例 LIBRARY myDev LIB_SRCS myDev.c LIB_SRCS_vxWorks devVx.c LIB_SRCS_RTEMS devRtems.c LIB_SRCS_DEFAULT devPosix.c # Linux, Darwin, Solaris LIB_SRCS_WIN32 -nil-源文件位置 1 通常源文件出现在与Makefile相同目录中 2可以告诉make从附近目录搜索源文件 SRC_DIRS dir 此处dir是从O.arch构建目录到包含此源文件的目录的相对路径。 3可以使用代码的多个OS-Specific实现。 4在一个或多个这些子目录中放置源文件。 os/osclassOS-specific版本os/posix基于Posix的OS的版本(LinuxUnixDarwinRTEMS)os/default最后机会的通用版本。 5相同源文件文件名应该用于所有版本。 C/C编译器标记 1为编译器命令行添加标志的很多方法例如 USR_CFLAGS所有C编译USR_CXXFLAGS所有C编译USR_CPPFLAGSC预编译器标志USR_CFLAGS_osclass用于osclass的所有C编译。USR_CXXFLAGS_osclass用于osclass的所有C编译。USR_CFLAGS_arch用于arch的所有C编译。USR_CXXFLAGS_arch用于arch的所有C编译。name_CFLAGS编译name.cname_CFLAGS_osclass为osclass编译name.cname_CFLAGS_arch为arch编译name.c 2) 包含文件搜索路径有它们子集的变量 USR_INCLUDES, USR_INCLUDES_osclass, name_INCLUDES, name_INCLUDES_osclass, name_INCLUDES_arch在INCLUDES中指定名称的每个目录前需要一个’-I‘标记。 与库文件链接 1由在configure/RELEASE文件中被列出的其它EPICS模块提供的库文件通常将被自动找到 构建系统自动搜索那些lib/arch目录以及top/lib/arch目录。 2如果一个库文件被放置在其它地方Makefile必须指定在何处 设置变量name_DIR为这个库的绝对路径 例如 LIBS usb usb_DIR /opt/local/lib 3) 如果它来自一个非EPICS包使用top/configure/CONFIG_SITE来设置此路径为那个包 不要让用户必须编辑Makefiles来能够构建此代码 在Makefiles中的条件 1 使用GNU Makefile条件来调整构建 configure/CONFIG文件包含top/configure/RELEASE和top/configure/CONFIG_SITE文件如果构建依赖可选模块是否可用使用configure/RELEASE变量在CONFIG_SITE中使用变量来让用户使能/禁用特性 ifdef SNCSEQ在这里用于与sequencer一起构建的行 else在这里用于没有与sequencer一起构建的行 endififeq ($(BUILD_IOCS), YES)在这里用于构建IOCs的行 else在这里用于不构建IOCs的行 endif libCom -- 通用工具库 1) 这个库有两个主要功能 在所有支持的OS之间提供一个共同的操作系统API为由IOC通道访问和其它程序使用实现了更多通用工具。 2base/src/libCom包含了159个C/C头文件(3.14.12.5) 3没有时间在这里讨论或甚至提到 4主要功能在IOC应用程序开发者指南章节中讨论了 IOC错误日志记录任务看门狗IOC shelllibComlibCom OSI库文件Registry 对应C代码的libCom亮点 1 多线程和线程间通信 epicsThread, epicsMutex, epicsEventepicsRingBytes, epicsRingPointer, epicsMessageQueue 2进程通信和字符串转换 epicsStdio, epicsStdlib, epicsStringosiSockerrlog logClientmacLib 3) 数据类型和结构体 epicsTypes, ellLib, gpHash 4) 数学 calc引擎 epicsMath, epicsEndian 5) 共享库 shareLib.h和epicsExport.h 多线程 1 epicsThread.h提供了一个通用的线程API 线程创建(名称优先级栈大小函数参数) 如果支持OS线程优先级映射到范围low0 .. high99栈大小是OS和架构相关的Small, medium, large 支持的线程操作 sleep(延时) 挂起继续获取名称获取id休眠量显示没有远程杀死一个线程的API例程必须为要退出的线程返回 C包装类 2线程私有变量 变量操作创建销毁getset 3线程onceAPI 确保初始化函数的执行仅一次 被其它线程执行初始化函数的并行尝试将在这个函数在第一个线程中返回前推迟它们。 互斥和事件信号 1) epicsMutex.h 互斥信号量支持递归锁来自OS可用的优先级继承和删除安全性。互斥操作创建销毁锁定解锁尝试锁定显示C包装类 23.15 epicsSpin.hspin-lock信号量基于epicsMutex C API。 3epicsEvent.h 二进制信号量事件操作创建销毁信号等待尝试等待无超时等待显示C包装类 环形消息缓存 1 epicsRingBytes.h 固定大小环形缓存支持变长度消息如果需要调用者必须实现锁如果单写入线程在写入时不需要锁定如果单读取线程读取时不需要锁定Base 3.15提供一个可选的内部spin-lock缓存操作创建删除putgetflush状态请求sizeis full, is empty, 使用字节空闲字节。 用于指针的环形缓存 epicsRingPointer.h 1) 固定大小的环形缓存 2仅支持单指针消息 3调用者必须根据需要实现锁定 如果单写入线程在写入时不需要锁定如果单读取线程在获取时不需要锁定Base  3.15提供了一个可选的内部spin-lock 4) C包装类 5缓存操作 创建删除pushpopflush3.15create-locked 6) 状态查询 大小是满是空已用字节空闲字节 消息队列 epicsMessageQueue.h 1) 固定大小的队列 2支持变长消息 3为与多个读取和写入线程而设计 4C包装类 5队列操作创建销毁发送尝试发送无超时发送接收尝试接收不超时接收 6状态查询pending show 对stdio.h的包装 epicsStdio.h包含了stdio.h 1) epicsSnprintf() epicsVsnprintf() 实现或者对C99的snprintf()vsnprintf()函数的包装确保所有操作系统表现基本相同 2用于重定向stdin, stdout, stderr流的基础设施 用于每个流的每线程设置(主要用于iocsh)epicsGetThreadStdinI() epicsSetThreadStdin()等包含epicsStdioRedirect.h来重新定义标识符stdin, stdoutstderr和函数printf(), puts()和putchar()在3.15中这个头被合并到了epicsStdio.h 3各种文件和文件名函数推荐不使用这些老的APIs 标准库 epicsStdlib.h包含stdlib.h 1) epicsStrtod() 同义或者对strtod()的包装确保所有操作系统表现相同支持NaN和Inf字符串 2epicsScanDouble() epicsScanFloat() 确保sscanf(%f)和sscanf(%lf)支持NaN和Inf字符串。 33.15epicsParse函数系列 用于转换字符串为所有数值类型可选的单位字符串捕获错误检查包括值向上溢出和向下溢出所有函数返回一个状态值(错误代码) 字符串处理 epicsString.h 1) 编译有用字符串函数 从raw转换字符串到转义的C类型从转义的C类型转换字符串为raw用转义的不可打印字符打印字符串shell团聚匹配(此字符串匹配通配符模式吗)计算字符串的哈希值和内存缓存 2这些替代了不是在所有操作系统上可用的标准例程 大小写无关的字符串比较(strcasecmp, strncasecmp)可再入字符串tokenization(strtok_r)字符串复制(strdup) 宏替换 macLib.h 1) 通用宏替换库 2支持多种变量范围递归宏... 3也处理环境变量 4操作创建上下文启用/禁用警告删除上下文获取宏值设置宏值push scopepop scope解析宏定义安装被解析的定义展开字符串用环境变量展开字符串报告上下文。 5高效可高经过充分测试 6更详细见base/src/libCom/macLib中macLibREADME文件。 网络套接字API osiSock.h 1) 提供用于创建和使用网络套接字的统一API对于WindowsSolaris等不需要特殊的应用程序代码。 2被Base(CA客户端和服务器日志客户端和服务器等)AsynpvAccess使用。 3使用特别广泛可靠。 4为常见任务提供若干例程 查询可用的网络接口创建套接字绑定到地址监听连接ioctl, 销毁配置用于广播UDP的套接字转换套接字或IP地址为ASCII(DNS和数值)或者从ASCII(DNS和数值)转成套接字或IP地址如何解冻被阻塞从一个套接字读取的线程查找套接字错误消息字符串。 报告和记录错误 1errMdef.h errlog.h 提供用于与错误处理和日志相关目的的APIs 关联和查找有错误状态值的字符串用于错误数值前缀的标准记录和flush错误消息转发记录的错误到一台远程服务器的监听程序在调试口启用/禁用记录消息的显示 2iocLogServer 用于IOCs和应用程序记录错误消息到其的服务器应用程序。存储消息在环形文件中(可配置固定最大尺寸)也支持记录文件目录轮转 3 IOC应用程序开发手册中第10章详细描述。 标准类型 epicsTypes.h 1各种大小的EPICS标准类型定义 2以前的C99以及我们支持的操作系统的一些 3定义这些标准类型epicsInt8, epicsUInt8, epicsInt16epicsUInt16, epicsInt32, epicsUInt32, epicsFloat32, epicsFloat64 epicsEnum16 3.15epicsInt64, epicsUInt64 4epicsInt8总是char因而可能在某些架构上是无符号的。 5 也定义了 MAX_STRING_SIZE(40)epicsFalse(0)epicsTrue(1)stringOf(token)  链表 ellLib.h 1) 双链表管理程序 2插入式 - 链接对象必须包含一个ELLNODE 不需要额外内存 3操作初始化列表 对象计数 第一个对象末尾对象下一个对象前一个对象添加对象连接链表删除对象提取对象获取第一个对象插入对象获取第n个对象步进n个对象在链表中查找对象释放所有对象验证链表有效性。 4链表和节点会被静态地初始化 5高效可靠经过充分测试 6模仿vxWorks lstLib的API 哈希表 gpHash.h 1) 用于通过名称快速对象查找的通用哈希表 2在初始化时固定的buckets数目2的指数从256到65536 3在一个哈希表中可以存储多个对象类型传入一个类型ID(指针)来区分在哈希计算中被包含 4非-obtrusive 表分配节点对象 5线程安全的访问表包含一个互斥锁 6操作创建表添加指定名称的对象通过名称查找通过名称删除释放表转存内容 计算引擎 1表达式编译器和计算引擎 2编译数学表达式为一个私有的后缀字节代码格式支持大多数标准C操作在语法中小差别 3用指定的输入值集合(double)快速执行字节代码 4被Base中calccalcouttransform记录areaDetector插件使用。 5检查输入值的例程被编译的表达式使用和修改。 6 操作编译表达式执行计算参数使用转存字节码 7高效可靠经过充分测试 8在IOC应用程序开发者手册中详细描述 其它头文件 1 epicsMath.h 包含math.h定义epicsINF和epicsNAN确保finite(), isnan()和isinf()都被定义 2epicsEndian.h a定义4个数值宏 EPICS_ENDIAN_LITTLEEPICS_ENDIAN_BIGEPICS_BYTE_ORDEREPICS_FLOAT_WORD_ORDER b) 两个_ORDER宏是架构专用并且应该与前两个做比较来确定CPU的大小端 库导出和导入 1 shareLib.h a) 定义用于标记库符号的若干宏对windows DLLs必不可少 epicsShareFunc要被导出/导入的函数epicsShareClass要被导出/导入的类epicsShareExternextern变量声明epicsShareDef变量定义epicsShareAPI在windows上函数使用__stdcall调用规则 b) 取决于是否定义了宏epicsExportSharedSymbols以及编译器是否正在构建DLL或一个静态(archive)库这些定义不同。 2 epicsExport.h 定义epicsExportSharedSymbols接着包含shareLib.h为IOC注册定义了一些其它宏epicsExportAddress, epicsExportRegistrar(), epicsRegisterFunction() 合适地使用shareLib.h 1) 库头文件应该在这个头文件中包含这些声明所需的shareLib.h以及任何其它头文件接着使用合适的epicsShare关键字来装饰这个头的声明。 2库实现应该 包含用于此代码将成为其组成部分的库外找到代码的所有所需头。被这个模块头文件包含的外部头也必须被包含在这里。# define epicsExportSharedSymbols包含用于此代码将成为其组成部分的库内找到代码的所有所需头。 2实现包含epicsExport.h而不是定义宏epicsExportSharedSymbols。 单元测试 1 epicsUnitTest.h 单元测试报告库产生测试任何东西协议(TAP)标准输出与在工作站上构建系统runtests和tapfiles目标一起运行在运行在嵌入操作系统时内建测试使用功能操作planokpassfailskiptododiagnostic, abort, done 2) testMain.h 定义一个宏MAIN()允许测试在工作站上以程序被构建以及在嵌入操作系统上以函数被构建 3构建系统变量TESTPROD, TESTSCRIPT(3.15TESTLIBRARY构建程序而不安装它们测试程序通常在它们的O.arch目录中运行。 4通过运行make runtests等添加要被运行的测试程序名到TESTS。
http://www.w-s-a.com/news/236847/

相关文章:

  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网
  • 三大网络架构seo是啥职业
  • 一个域名可以做中英文两个网站吗搜索引擎营销的6种方式
  • 可以做ppt的网站天津网站建设怎么样
  • 网站怎么做的qq邮件订阅浙江省住房和城乡建设厅网站查询
  • 主机屋网站在线做图片
  • 河南省城乡住房建设厅网站wordpress登陆密码
  • 漳州做网站的公司搭建网站多少时间
  • 网站开发实习计划模板微营销手机
  • 网站设计与制作是做什么工作免费封面设计在线制作生成
  • 网站开发的教学课程网站广告调词软件