编译程序

workSpace

。_饼干妹妹 提交于 2020-03-12 22:01:24
1. 用垃圾xcode4创建一个work space,然后添加两个工程,一个是编写lib的工程(target是一个静态库),一个是使用这个lib的普通ios程序的工程。 现在可以认为这两个工程是同级别的,没有什么关系,只是被垃圾x4用work space组织到一起,而已。 2. 先整这个lib工程,注意以下几个地方: 2-1. 确定你要导出的头文件: see,当然得选public. 2-2.设置这个lib的安装路径 这个lib工程生辰的产品——静态库——最终被安装到的路径可能取决于垃圾x4的垃圾偏好设置:Locations.因此可能被安装到derived data路径下,也可能由我们的target指定的路径.为了使得在各种情况下都一样,需要把编译设置里的"Installation Directory"设置为"$(BUILT_PRODUCTS_DIR)".这样我们编译出的静态库产品就能在一个确定的位置找到. 这个位置是这个work space里各工程编译产生的产品共同的目录. 同时我们还需要把这个lib工程里编译设置之“Skip Install”项设为"Yes",这样就可以避免lib被意外的安装到“/usr/local/lib”了(试试就知道这个"意外"目录是哪了)。 2-3.设置公共头文件的路径. 就是说光产生lib(*.a文件)不行啊,还需要外部使用的头文件啊

使用golang获取本机IP

纵然是瞬间 提交于 2020-03-12 19:00:54
如何获取本机网卡的IP地址 应用场景 需要知道用户的IP地址来分析问题,用户不知道怎么操作,这个时候把编译好的ip.exe发给对方运行截屏即可 golang可以编译全平台(win/mac/linux)程序 运行效果(win10操作系统) 代码 package main // 获取本机全部网卡的全部IP // 2020-03-12 16:52 import ( "fmt" "net" "fyne.io/fyne/app" "fyne.io/fyne/widget" ) //获取全部网卡的全部IP func Ips() (map[string]string, error) { ips := make(map[string]string) //返回 interface 结构体对象的列表,包含了全部网卡信息 interfaces, err := net.Interfaces() if err != nil { return nil, err } //遍历全部网卡 for _, i := range interfaces { // Addrs() 方法返回一个网卡上全部的IP列表 address, err := i.Addrs() if err != nil { return nil, err } //遍历一个网卡上全部的IP列表,组合为一个字符串,放入对应网卡名称的map中 for _,

STM32 代码堆栈大小分析

孤者浪人 提交于 2020-03-12 15:34:31
1.RO段包括只读代码段(code段/.text段)和常量段(RO Data段/.constdata段)。 2.RW段(.data段)指已被初始化成非0值的变量段。 3. ZI段(.bss段)指未被初始化或初始化为0的变量段。 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。 要了解RO,RW和ZI需要首先了解以下知识: ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。 一个ARM程序包含3部分:RO,RW和ZI RO是程序中的指令和常量 RW是程序中的已初始化变量 ZI是程序中的未初始化的变量 由以上3点说明可以理解为: RO就是readonly, RW就是read/write, ZI就是zero ARM映像文件的组成 所谓ARM映像文件就是指烧录到ROM中的bin文件,也成为image文件。以下用Image文件来称呼它。 Image文件包含了RO和RW数据。 之所以Image文件不包含ZI数据,是因为ZI数据都是0,没必要包含

C语言 正则表达式邮箱验证(pcre库)

江枫思渺然 提交于 2020-03-12 13:14:39
本程序与2020.3.12在DEV-C++编译器运行成功,邮箱验证用下面两个函数即可。 PCRE接口介绍 (1). pcre_compile pcre *pcre_compile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr); 功能:编译指定的正则表达式 参数:pattern, 输入参数,将要被编译的字符串形式的正则表达式 options, 输入参数,用来指定编译时的一些选项 errptr, 输出参数,用来输出错误信息 erroffset, 输出参数,pattern中出错位置的偏移量 tableptr, 输入参数,用来指定字符表,一般情况用NULL, 使用缺省的字符表 返回值:被编译好的正则表达式的pcre内部表示结构 (2). pcre_exec int pcre_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options, int *ovector, int ovecsize); 功能:用来检查某个字符串是否与指定的正则表达式匹配 参数: code, 输入参数

Windows WorkFlow Foundation入门

喜夏-厌秋 提交于 2020-03-12 07:39:52
一、工作流概述 工作流是由活动单元组成的集合,活动是真实过程的的一个模型。工作流提供了一种描述一系列相互关联的工作之间有执行顺序,这种工作从头到尾贯穿了整个活动,这些活动可能是由人工或系统来执行。 每一个运行的工作流实例由工作流运行时引擎来创建和维护的。虽然对于每一个应用程序域只能有一个工作流运行时引擎,但工作流运行时引擎内可以行多个工作流实例并发工作。 一旦一个工作流模型被编译,它就可以在任何一Windows进程内工作,包括控制台程序,窗口程序,Windows服务程序,Asp.net网站及Web Service等。因为工作流驻留在进程中,所以它可以很容易与它的宿主进程进行通信。 下面这幅图表明了工作流、活动以及工作流运行时引擎都存在于一个宿主程序中。 活动 如上所述,活动是工作流的基本单元,它们通过程序被加入到一个工作流中,其方式就好比将一个XML DOM子节点加入到根节点中。一旦工作流中的所有节点都运行完成,工作流实例就会结束。 WF由一系列标准活动类库组成,同时也提供了一个机制帮助开发人员开发自己的类库。这使得工作流之间的可扩展性和可重用性更加优异。 服务 当一个工作流运行的时候,工作流运行时引擎要使用到多个服务。这些服务组件是可插拔的,这使得应用程序可以在它们的运行环境中,提供具有唯一性的服务。Windows Workflow

Delphi-bpl与dll之关系

半世苍凉 提交于 2020-03-12 07:06:25
第一部分:有关包的介绍 一般我们编写编译一个DELPHI应用程序时,会产生一个EXE文件,也就是一个独立的WINDOWS应用程序。很重要的一点:区别于Visual Basic,DELPHI产生的是预先包裹的应用程序是不需要大量的运行库(DLL's)。 假设:打开Delphi默认的工程(只有一个空白form),F9她将编译生成一个大约295 KB (Delphi 5)的可执行文件。然后打开Project | Options,把‘Build with runtime packages’选上再编译一下,EXE文件大小就只有15 KB左右了。 我们编译一个DELPHI应用程序时默认地没有选择'Build with runtime packages',编译器将把程序运行所需要的代码直接写入你的EXE文件中,因此产生的程序是一个相对独立的程序,并不需要任何附属的支持文件(例如动态运行库文件DLL),这也就知道了为什么DELPHI产生的应用程序为什么都那么大。 要建立尽可能小的DELPHI程序,方法之一就要充分发挥Borland package libraries的作用,简称BPL。 先说什么是包? 简而言之,一个包就是一个在DELPHI的IDE环境中被DELPHI应用程序共享的特殊的动态链接库。包允许我们通过多级应用将我们的程序的一部分当做一个分离的模块供其他应用程序来共享。

Python基础简介与简单使用

纵饮孤独 提交于 2020-03-12 04:55:46
Python介绍 Python发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s FlyingCircus。 他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。 Granddaddy of Python web frameworks, Zope 1 was released in 1999 Python 1.0 - January 1994 增加了 lambda, map, filter and reduce. Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础 Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生 Python 2.5 - September 19, 2006 Python 2.6 - October 1, 2008 Python 2.7 - July 3, 2010 In

Visual Studio 2005 XviD编译过程

回眸只為那壹抹淺笑 提交于 2020-03-11 21:45:03
这几天做一个BMP2AVI的转换器,要用到XviD Codec的编码器,使用过程中,发现有一个Status窗口弹出来,压缩过程奇慢 GraphEdit里的结构如下: PushSourceBitmapSetFilter -> XviD MPEG-4 Codec -> AVI Mux -> FileWriter 并且关闭GraphEdit的时候,关闭不了程序,程序失去响应,怀疑是因为Status窗口造成的,google上搜索了一下,发现需要修改XviD的源代码来去掉这个东西。参见 http://topic.csdn.net/t/20040803/21/3239607.html 修改config.c的reg_ints中display_status默认值定义为0 于是从 www.xvid.org 下载了最新的源代码1.1.2,开始编译,编译过程中发现不少错误。在此把解决方法贴出来,供大家参考: 1、因为我用的编译器是Visual Studio 2005 Team Edition,所以,需要把工程里的xvidcore.dsw工程文件转换成.NET 2005的格式。 2、编译工程里的汇编代码需要用nasm编译器,可以到 http://sourceforge.net/projects/nasm/ 下载一个win32版本,解压到本地,把nasmw.exe改名为nasm.exe 在VS2005

源码方式安装软件

强颜欢笑 提交于 2020-03-11 18:58:23
源码包编译安装 ======= Created 星期一 23 十月 2017 一、使用make编译软件前需要安装的包 GCC为GNU编译器套件(GNU Compiler Collection), yum -y install cpp ###cpp为c++库 yum -y install binutils ###二进制工具集,用于创建C库文件和创建静态库 yum -y install glibc ###GNU发布的libc库,即C运行库,其他库都依赖与glibc库 yum -y install glibc-kernheaders yum -y install glibc-common yum -y install glibc-devel yum -y install gcc ### GNU编译器套件,不仅可处理c语言,也可处理多种语言 yum -y install make ###可能系统不一定自带,最好Yum安装以下 二、静态链接库与动态链接库 题外话:函数与方法的区别:函数是大家的函数,直接调用可实现相应功能,无需关心数据结构算法以及自己进行编写,即可供大家使用的。方法是类的方法。静态库和动态库就是由大量的函数组成。 库分为静态链接库和动态链接库(共享库)。 2.1、静态函数库 这类库的名字一般是 libxxx.a ,扩展名为.a;利用静态函数库编译成的文件比较大,因为整个

windows搭建gcc开发环境(msys2) objdump

こ雲淡風輕ζ 提交于 2020-03-11 18:18:36
前言 可能你并不太了解msys2,但是作为一个程序员,你一定知道mingw,而msys2就集成了mingw,同时msys2还有一些其他的特性,例如包管理器等。 msys2可以在windows下搭建一个完美的类linux环境,包括bash、vim、gcc、make等工具都可以通过包管理器来添加和卸载 msys2的包管理器是使用的pacman,用过archlinux的应该都知道pacman了。 我们现在的目标是要集成make+gcc+gdb的一条编译工具 安装 下载地址: msys2 如果是exe,直接双击安装,如果是zip,直接解压到安装的地方即可。然后双击msys2.exe运行 [图片上传失败...(image-295493-1523187370956)] 给 MSYS2 添加中科大的源 使用过archlinux的应该会知道,pacman在安装的时候,如果源没有设置好,下载是很慢的。 需要修改的文件是: 1. \etc\pacman.d\mirrorlist.mingw32 2. \etc\pacman.d\mirrorlist.mingw64 3. \etc\pacman.d\mirrorlist.msys 简单的说 msys64\etc\pacman.d 目录下有三个文件。 mirrorlist.msys mirrorlist.mingw64 mirrorlist