导航:首页 > 源码编译 > ios编译生成代码

ios编译生成代码

发布时间:2022-08-17 14:23:11

❶ ios 怎么配置编译ffmpeg

IOS上编译ffmpeg需要先下载两个程序:iFrameExractor和ffmpeg
编译步骤:
1、在终端下: cd /iFrameExtractor/ffmpeg 建议开始就执行 sudo -s (获取权限命令)
2、在终端下输入 ./configure --prefix=/iFrameExtractor/ffmpeg --libdir=iFrameExtractor/ffmpeg/lib --enable-gpl --enable-static --disable-shared --enable-swscale --enable-zlib --enable-bzlib --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pthreads
3、执行make 这里会有一堆的编译情况。
注:最好先升级Command Line Tools,避免编译错误

4、执行make install。 (执行完后 到iFrameExtractor/ffmpeg/lib文件上去看看)
出现 libavcodec libavdevice libavformat libavutil libswscale5个.a文件
5、用xcode 打开iFrameExractor工程,确认Header Search Paths里有:"$(SRCROOT)/ffmpeg"路径。 $(SRCROOT)表示工程路径。同时可以看到iFrameExractor工程下ffmpeg文件下的.a文件都不是红色的了。

6、真机上编译(模拟器上i386,真机上是arm的,真机还分arm6 和arm7 )
以下是针对arm7的

/configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' -- sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk' --enable-pic
7、执行 make 和make install 就有上面的几个.a文件,至此编译结束。

❷ 如何把iOS代码编译为Android应用

看开发时使用的什么模式。
如果是使用object C,那没法跨平台编译,也就无法直接转换。
如果使用的一些支持跨平台的第三方库,比如cocos2dx,那在安卓和ios下都是可以编译的。

一款名为“J2ObjC”的源代码转换工具,可将Java语言编写的程序转换称Object-C语言,并直接使用iOS框架,这意味着Android上的程序可以直接转换成iOS App。

❸ ios 能编译动态库吗

一、创建FrameWork工程

新建工程,选择创建FrameWork工程或者静态库(Static Library)。






  • ❹ 怎么试运行iOS软件的源代码

    分析一款ios应用的源代码方法如下:

    1、首先提取整个应用文件的二进制代码,建立for循环将机器所有字符串进行排列组合并标记后编译。

    2、再建立for将应用文件二进制代码同所有的字符串排列组合编译成的二进制文件进行对比。

    3、最后通过标记就能找到应用的源代码。

    ❺ ios 开发怎么用代码生成xml文件

    在ios开发中,可以使用GDataXML生成xml

    GDataXML只有两个文件GDataXMLNode.h和GDataXMLNode.m。使用方法如下:

    将文件包含进工程后,添加libxml2.dylib:

    现在可以编写代码了:

    #import"GDataXMLNode.h"

    // 创建一个根标签

    GDataXMLElement *rootElement = [GDataXMLNode elementWithName:@"root"];

    // 创建一个属性

    GDataXMLElement *attribute = [GDataXMLNode attributeWithName:@"a" stringValue:@"b"];

    // 创建一个标签元素

    GDataXMLElement *element = [GDataXMLNode elementWithName:@"user" stringValue:@"HelloWorld"];

    // 把标签与属性添加到根标签中

    [rootElement addAttribute:attribute];

    [rootElement addChild:element];

    // 生成xml文件内容

    GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithRootElement:rootElement];

    NSData *data1 = [xmlDoc XMLData];

    NSString *xmlString = [[NSString alloc] initWithData:data1 encoding:NSWindowsCP1253StringEncoding];

    NSLog(@"xmlString %@", xmlString);

    结果:

    <?xml version="1.0"?>

    <root a="b"><user>HelloWorld</user></root>

    ❻ xcode 如何编译

    Xcode 常用编译选项设置
    在xcconfig文件中指定即可。
    用标准库连接
    LINK_WITH_STANDARD_LIBRARIES = YES如果激活此设置,那么编译器在链接过程中会自动使用通过标准库的链接器。
    Info.plist 输出编码
    INFOPLIST_OUTPUT_FORMAT = binary指定Info.plist文件的输出编码(默认情况下,输出与输入的编码保持不变),这个输出编码能指定“binary”或者“XML”。
    生 成调试符号GCC_GENERATE_DEBUGGING_SYMBOLS = NO当启用的时候,详情等级能够通过build的’Level of Debug Symbols’设置去控制。 隐藏内联方法GCC_INLINES_ARE_PRIVATE_EXTERN = YES Objective-C GCGCC_ENABLE_OBJC_GC = Unsupported 优化级别GCC_OPTIMIZATION_LEVEL = Fastest, Smallest [-OS]
    None: 不做优化使用这个设置,编译器的目标是减少编译成本,使调试产生预期的结果。
    Fast:优化编译将为大函数占用更多的时间和内存使用这个设置,编译器将尝试减少代码的大小和执行时间,不进行任何优化,需要大量编译时间。
    Faster:编译器执行几乎所有支持的优化,它不考虑空间和速度之间的平衡与“Fast”设置相比,该设置会增加编译时间和生成代码的性能。编译器不进行循环展开、内联函数和寄存器变量的重命名。
    Fastest:开启“Faster”支持的所有的优化,同时也开启内联函数和寄存器变量的重命名选项
    Fastest,smallest:优化代码大小这个设置启用“Faster”所有的优化,一般不增加代码大小,它还执行旨在减小代码大小的进一步优化。
    C 语言方言GCC_C_LANGUAGE_STANDARD = C89 警告 检查Switch语句GCC_WARN_CHECK_SWITCH_STATEMENTS = YES 隐藏局部变量GCC_WARN_SHADOW = YES 隐式转换成32位的类型GCC_WARN_64_TO_32_BIT_CONVERSION = YES 未完成的Objective-C协议GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES 抑制所有的警告GCC_WARN_INHIBIT_ALL_WARNINGS = NO 初始化时没有完整的括号GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES例子(a没有完全的括号,b有):
    int a[ 2 ][ 2 ] = { 0, 1, 2, 3 };
    int b[ 2 ][ 2 ] = { { 0, 1 }, { 2, 3 } };
    不匹配的返回类型
    GCC_WARN_ABOUT_RETURN_TYPE = YES 缺少括号GCC_WARN_MISSING_PARENTHESES = YES例子:
    {
    if( a )
    if( b )
    foo();
    else
    bar();
    }
    {
    if( a )
    {
    if( b )
    foo();
    else
    bar();
    }
    }
    在结构体初始化时缺少字段
    GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
    缺 少函数原型GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES 在文件结尾缺少新行GCC_WARN_ABOUT_MISSING_NEWLINE = YES 选择了多个定义的类型(@Selector)GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO 严格的Selector匹配GCC_WARN_STRICT_SELECTOR_MATCH = YES 把缺少函数原型当作错误GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES 把所有的警告当作错误GCC_TREAT_WARNINGS_AS_ERRORS = YES 未定义的SelectorGCC_WARN_UNDECLARED_SELECTOR = YES 未初始化的自动变量GCC_WARN_UNINITIALIZED_AUTOS = YES 未知的Pragma指令GCC_WARN_UNKNOWN_PRAGMAS = YES 未使用的函数GCC_WARN_UNUSED_FUNCTION = YES 未使用的标签GCC_WARN_UNUSED_LABEL = YES 未使用的参数GCC_WARN_UNUSED_PARAMETER = YES 未使用的值GCC_WARN_UNUSED_VALUE = YES当一个语句计算的结果显式的未使用的时候发出警告 未使用的变量GCC_WARN_UNUSED_VARIABLE = YES 警告-所有过时的函数GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES offsetof宏未定义使用的警告GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
    iphone 常用的<app>-info.plist设置
    Application requires iPhone environment如 果应用程序不能在ipod touch上运行,设置此项为true;
    Application uses Wi-Fi如果应用程序需要wi-fi才能工作,应该将此属性设置为true。这么做会提示用户,如果没有打开wi-fi的话,打开wi-fi。为了节省 电力,iphone会在30分钟后自动关闭应用程序中的任何wi-fi。设置这一个属性可以防止这种情况的发生,并且保持连接处于活动状态
    Bundle display name这用于设置应用程序的名称,它显示在iphone屏幕的图标下方。应用程序名称限制在10-12个字符,如果超出,iphone将缩写名 称。
    Bundle identifier这个为应用程序在iphone developer program portal web站点上设置的唯一标识符。(就是你安装证书的时候,需要把这里对应修改)。
    Bundle version这个会设置应用程序版本号,每次部署应用程序的一个新版本时,将会增加这个编号,在app store用的。
    Icon already includes gloss and bevel effects默认情况下,应用程序被设置了玻璃效果,把这个设置为true可以阻止这么做。
    Icon file(这个不用多说了)设置应用程序图标的。
    Main nib file base name应用程序首次启动时载入的xib文件 这个基本用不到。
    Initial interface orientation 确定了应用程序以风景模式还是任务模式启动
    Localizations多语言。应用程序本地化的一列表,期间用逗号隔开,例如 应用程序支持英语 日语,将会适用 English,Japanese. Status bar is initially hidden 设置是否隐藏状态栏。你懂的。
    Status bar style选择三种不同格式种的一种。
    URL types应用程序支持的url标识符的一个数组。
    用URL Scheme进行程序跳转
    打开info.plist,添加一项URL types
    展开URL types,再展开Item1,将Item1下的URL identifier修改为URL Scheme
    展开URL Scheme,将Item1的内容修改为myapp
    其他程序可通过myapp://访问此自定义URL
    参考:http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
    IOS后台播放音乐
    OS后台播放只是在IOS4.0以后的版本支持。
    1,设置后台播放会话
    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setActive:YES error:nil];
    [session setCategory: error:nil];
    2,在info.plist里面添加
    <key>UIBackgroundModes</key>
    <array>
    <string>audio</string>
    </array>
    静态库没法包含category/分类?
    如果你导入一个objc静态库,发现很多objc的category 不能调用,可以尝试在主工程中加入linker选项:
    -all_load 加入这个一般就够了
    -ObjC
    让程序最小化再开启时,从头开始:
    按下 “Home” 键以后程序可能并没有退出而是转入了后台运行。如果您想让应用直接退出,最简单的方法是:在 info-plist 里面找到 Application does not run in background 一项,勾选即可。
    程序退出后任务栏还是有图标,但是程序原来的所有运行状态全部丢失,点击任务栏图标也不过相当于再次启动程序;如果允许后台运行,点击任务栏图标后会恢复程序中断时的界面。
    本地化字符串:
    在infoPlist.strings里面写
    “string1″=”水果”
    代码里面写 myLabel.text = NSLocalizedString(@”string1″, nil);
    本地化的Bundle display name:
    1)创建一个空文件,取名为InfoPlist.strings
    2)对InfoPlist.strings进行本地化(Get Info -> Make Localization),然后设置需要的语言(如中文zh)
    3)编辑不同的InfoPlist.strings文件,设置显示名字
    CFBundleDisplayName = “名字”;
    4)(这步不做貌似也可以)编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为选中状态
    default图片的衔接问题:
    程序开始后,手动加载default图片,然后进行过渡效果即可。
    遍历目录:
    NSString *appDocDir = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] relativePath];NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appDocDir error:NULL];for (NSString *aPath in contentOfFolder) { NSLog(@"apath: %@", aPath); NSString * fullPath = [appDocDir :aPath]; BOOL isDir; if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir) { [fileList addObject:aPath]; }}
    IB:
    不论写不写property的retain,由IBOutlet都会为对象加一个retainCount,所以只要连接了,就需要在viewDidUnload与dealloc中release并适当置为nil。
    预先在IB里面加载好的文件(比如图片),即使释放了Controller,IB中的文件也不会被释放,直至内存警告,解决办法是较大的资源用代码加载。
    UIWebView:
    用代码加载UIWebView的内容,navigationType是UIWebViewNavigationTypeOther
    CAAnimation:
    一定要记得[self.view.layer removeAllAnimations];因为CAAnimation会retain它的delegate
    设备型号识别,可通过审核:
    + (NSString*)getDeviceVersion{ size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; free(machine); return platform;}
    输出:
    //@”iPad1,1″
    //@”iPad2,1″
    //@”i386″
    逗号后面数字解释:(i386是指模拟器)
    1-WiFi版
    2-GSM/WCDMA 3G版
    3-CDMA版
    AppleTV(2G) (AppleTV2,1)
    iPad (iPad1,1)
    iPad2,1 (iPad2,1)Wifi版
    iPad2,2 (iPad2,2)GSM3G版
    iPad2,3 (iPad2,3)CDMA3G版
    iPhone (iPhone1,1)
    iPhone3G (iPhone1,2)
    iPhone3GS (iPhone2,1)
    iPhone4 (iPhone3,1)
    iPhone4(vz) (iPhone3,3)iPhone4 CDMA版
    iPhone4S (iPhone4,1)
    iPodTouch(1G) (iPod1,1)
    iPodTouch(2G) (iPod2,1)
    iPodTouch(3G) (iPod3,1)
    iPodTouch(4G) (iPod4,1)
    判断ipad/iphone
    12UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPadUI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
    或者
    1[[[UIDevice currentDevice] model] isEqualToString:@"iPad"];
    判断设备是否有摄像头
    1[UIImagePickerController isSourceTypeAvailable:];

    ❼ 如何将 lame 从源代码编译成 iOS App 可用的静态库

    生成的静态库包括armv6 armv7 模拟器 以及一个合并的库


    你需要做的是:

    1、http://sourceforge。net/projects/lame/files/lame/3.99/ 下载lame的最新版本解压

    2、将该文件lamebuilder放到目录下

    3、修改lamebuilder中的路径


    --prefix=/Users/rinjack/Desktop/lame


    为你的lame目录路径

    4、在终端中 cd到 你的lame目录

    sudo -s

    chmod a+x lamebuilder

    ./lamebuilder


    5、生成的文件在build目录下

    ❽ 如何编译打包iOS系统

    选择“Build Phases”选项卡

    点击红框标注的“+”按钮

    3
    在弹出的菜单中选择“New Run Script Phase..."

    4
    修改名称,单击红框标注的“Run Script",此处是为了增加编译号,所以名称我就改成了Build Number

    5
    在红框标注的输入框中输入:

    ❾ ios怎么自动生成model里面的属性代码

    一、获取Model的实体属性1.要想遍历Model类的属性,首先得通过Runtime来获取该Model类有哪些属性,输出Model的所有属性的值可不像遍历Dictionary和Array那样一个for循环搞定的,下面的方法是通过Runtime来获取Model类的属性字符串,并以数组的形式返回。代码如下:///通过运行时获取当前对象的所有属性的名称,以数组的形式返回-(NSArray*)allPropertyNames{///存储所有的属性名称NSMutableArray*allNames=[[NSMutableArrayalloc]init];///存储属性的个数unsignedintpropertyCount=0;///通过运行时获取当前类的属性objc_property_t*propertys=class_PropertyList([selfclass],&propertyCount);//把属性放到数组中for(inti=0;i<propertyCount;i++){///取出第一个属性objc_property_tproperty=propertys[i];constchar*propertyName=property_getName(property);[allNamesaddObject:[NSStringstringWithUTF8String:propertyName]];}///释放free(propertys);returnallNames;}2.获取到Model类的属性方法后需要把属性字符串生成get方法,我们可以执行get方法来获取Model属性的值,下方的方法是根据属性字符串来获取属性的getter方法,OC中属性的getter方法的名字和属性的名字是一致的,生成getter方法比较简单,具体代码如下:#pragmamark--通过字符串来创建该字符串的Setter方法,并返回-(SEL)creatGetterWithPropertyName:(NSString*)propertyName{//1.返回get方法:oc中的get方法就是属性的本身returnNSSelectorFromString(propertyName);}二、Get方法的执行接下来要做的是通过Runtime来执行Getter方法,这一块需要通过方法的签名来执行Getter方法。在OC的运行时中要执行的方法需要传入参数或者需要接收返回值时,需要通过方法的签名来调用方法。下面的代码就是创建方法的签名,然后通过签名来获取调用的对象,在下边的方中回调用上述两个方法在通过方法的签名来获取Model属性的值,具体代码如下:-(void)displayCurrentModleProperty{//获取实体类的属性名NSArray*array=[selfallPropertyNames];//拼接参数NSMutableString*resultString=[[NSMutableStringalloc]init];for(inti=0;i<array.count;i++){//获取get方法SELgetSel=[:array[i]];if([selfrespondsToSelector:getSel]){//获得类和方法的签名NSMethodSignature*signature=[:getSel];//从签名获得调用对象NSInvocation*invocation=[:signature];//设置target[invocationsetTarget:self];//设置selector[invocationsetSelector:getSel];//接收返回的值NSObject*__unsafe_unretainedreturnValue=nil;//调用[invocationinvoke];//接收返回值[invocationgetReturnValue:&returnValue];[resultStringappendFormat:@"%@\n",returnValue];}}NSLog(@"%@",resultString);}执行上述方法就可以输入Model中的属性的值,下面就在main函数中对Model赋完值后调用上述方法输出一下Model的属性值,调用代码如下所示:BeautifulGirlModel*beautifulGirl=[:data];[];运行结果如下,下面的输出结果是Model中属性的值。

    阅读全文

    与ios编译生成代码相关的资料

    热点内容
    文件夹如何拖拽还保留原来的 浏览:21
    职业生涯pdf 浏览:954
    ubuntu安装软件php 浏览:159
    黑马程序员退学流程 浏览:362
    网页服务器崩溃怎么回事 浏览:651
    cnc编程前景怎么样 浏览:320
    lniux命令详解 浏览:494
    linuxmysql查询日志 浏览:369
    老捷达伙伴压缩比 浏览:94
    改后缀加密 浏览:433
    邮局选址问题算法 浏览:15
    河北服务器内存云主机 浏览:13
    在电脑上怎么找到加密狗图标 浏览:437
    电脑的浏览器怎么打开pdf文件怎么打开 浏览:145
    pdf卡片库下载 浏览:13
    单片机中二进制表示什么 浏览:726
    java网络编程推荐 浏览:797
    施耐德开关编程 浏览:68
    组织胚胎学pdf 浏览:846
    linux查看发包 浏览:497