当前位置:  编程技术>移动开发
本页文章导读:
    ▪【转】怎么制作,编译,使用静态编译库        【转】如何制作,编译,使用静态编译库 http://www.cocoachina.com/bbs/read.php?tid-27108.html 首先请看完附件图文教程。各位大大绕行第一个。通常网上能看到的资料,就这么点。我很愤怒很多细节的.........
    ▪ 【转】写在ipad将要到来的时候        【转】写在ipad即将到来的时候 写在ipad即将到来的时候 作者:virushuo 发表于 2010-04-05 21:04 最后更新于 2010-04-08 00:04版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处.........
    ▪ Lua里模拟C的三元演算       Lua里模拟C的三元运算 模拟三元运算i=1i=i+1>3 and 1 or i+1    --累加到3后重置为1模拟异或运算i=i==1 and 0 or 1    ......

[1]【转】怎么制作,编译,使用静态编译库
    来源: 互联网  发布时间: 2014-02-18
【转】如何制作,编译,使用静态编译库

http://www.cocoachina.com/bbs/read.php?tid-27108.html

首先请看完附件图文教程。各位大大绕行第一个。通常网上能看到的资料,就这么点。我很愤怒很多细节的实现,有的高手都一带而过,不教导后来人。

这个教程只是先xcode制作一个库,xcode使用一个库。其实这样的情况,非常少。
接下来就介绍一个常见的:

很多情况下,我们从网上得到的是一个纯C的代码包,他们这些库,往往是各种平台通用,代码包svn checkout出来后,里面有makefile , vcproject file,等等。
往往我们先README看过之后,通过./configure  make  make install ,
来实现编译生成了一个库。(注意一些基本语法  ./confiure后如果带 --prefix=/path/to/your/custom/dir  表明自定义安装路径 ,这个很有用,有些人默认安装后,找不到*.a库的路径,急死了。嘿嘿。)

那么在这样的情况下,我们第一个首先会遇到的问题,就是这个库格式不兼容。

我们添加了这个库到project后编译时,显示this file format doesn't support (i386)。
这个情况,是由于大部分snow leopard是INTEL DUO CPU,双核x86_64的,一般很多库,不加特别标注,都以为你开发了为MAC电脑开发程序,所以库都默认为x86_64位的静态库。如果你好奇,可以new一个MAC开发程序的project,试着看看那个库能不能正常编译,没有warning就知道了。

当然,还有一个命令行来检测你编译的库,可以使用在什么平台架构下。
方法如下:   :    lipo -info /path/to/your/library.a
即可看到此库位i386, x86_64, arm等等。

明白了上面的问题的产生原因,我们就好办了。 一般解决办法是这样的,在./configure 之后加一点参数,比如 CFLAG="-arch i386" 。GCC的path设定到SDK path以下的/usr/lib/gcc/i686 or arm下。注意,SDK PATH,有两种,iphoneOs 和iphoneSimulator.有很大的区别!!

好了。以上是第一个问题。随后,你编译成功,lipo检测版本也OK后,你可以*.a 静态库文件到Project了。记得选中复制到项目。

再一个问题,也就是第二大问题,就是如何导入头文件。

由于很多是C的代码,headers通常是这样使用的 #include <fuck.h> 。如果我们这样使用,xcode直接报错,提示找不到这样的头文件。

那我们该怎么办呢?我找了网上所有的文章,都一带而过。于是我很愚蠢的选择把头文件拷贝过来。然后一个个的改include 为import ,把< >语法,改为” “。并且,木有一个高手愿意说!我恨啊!!!

其实可以使用这样的办法,就是在右击你的project 名,选择Get Info . 在build选项卡中,有search hearder path 选项。是让你告诉xcode去哪儿搜搜头文件。

记住,这里如果你的库的安装路径是/usr/AAA的话,那AAA下肯定有include , lib两大文件夹。 那你在选项中,请直接填/usr/AAA,不需要多此一举选择到include文件夹中,苹果会自动替你搜索进去。

这里有一个小细节,如果这样编译出错的话,请不要选中recursive ,否则可能导致头文件重复引用,导致error: expected '=', ',', ';', 'asm' or '__attribute__' before 这样的错误。

至此,xcode的引用第三方库已经基本讲解结束了。一般来说,请不要相信那些片段,说什么让你设定library的path 。请记住,*.a的静态库,直接按照本文附件中的方法,添加文件到Project,不要偷懒直接引用path,会有很多意外的错误。


最后,我发一下牢骚。我知道提问的艺术,我知道谦逊,而且你又知道解决的办法,请说出来。不要吝啬,不要沾沾自喜,请共同进步!

//***************************************************

迷惑了好久,总算搞清楚很多基础问题了。我想很多人都像我和楼主一样,入门时没有unix的基础,也没有人指导,往往就是基本中文的垃圾书直接就扎到xcode里面开战,开发基本的应用还没有问题,一旦涉及系统平台,基础api,c类库、编译器之类就懵了,然后再猛google,查一堆英文资料,弄得头昏眼花还是未能理解到基础知识的重要性,我们这种程序员还是功利性太强啊。


    
[2] 【转】写在ipad将要到来的时候
    来源: 互联网  发布时间: 2014-02-18
【转】写在ipad即将到来的时候

写在ipad即将到来的时候

作者:virushuo 发表于 2010-04-05 21:04 最后更新于 2010-04-08 00:04
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://blog.devep.net/virushuo/2010/04/05/ipad_coming.html

我的朋友jack,这几天恰好在夏威夷,于是我就非常幸运的拜他所赐,买到了一个ipad。这可能是国内比较早的一批ipad吧。很多人难以理解Apple到底是什么东西,很多人嘲讽ipad是个无用的产品,很多人对苹果的印象是贵,样子好看等等,不幸的是,他们不了解这个公司,也不了解这个产品。似乎一个好的产品总是拥有完全相反的两方意见。

2001年12月,苹果发布了ipod,那"只不过"是个音乐播放器,从此拉开了一个新时代的帷幕。这是一个把计算能力放在掌心和身上的时代。苹果曾经试图把计算能力放到每个桌面上,不过那一次失败了,开放的wintel联盟打败了封闭的苹果。最终我们看到,大部分桌面的计算设备是微软的操作系统和PC。

在PC尚未普及到所有桌面的时候,移动计算的时代就开始了。这场战争从传统的手机制造商开始,Palm和Nokia曾经如日中天,曾经人们担心微软会重复在PC端的垄断,再次垄断移动设备。但是没多少人注意到苹果的行动,苹果从移动音乐设备进入,起初的对手看起来是SONY之类的消费电子制造商,现在回头看来,这是一个正确的选择。移动音乐设备的拥有量甚至不低于手机。

等到苹果发布itouch的时候,局势就已经确定了。无论是SONY,微软,NOKIA...没有一个厂商可以做出来更好的产品。是的,苹果有很多缺点,但竞争对手的缺点更多。

做为开发者,我尝试了一些设备,包括很多人认为有望和苹果抗衡的Android。结果非常令人失望。到目前为之,苹果的产品仍然是对于开发者最友好的产品。

系统的封闭和开放,其实并不会改变产品的可用性,甚至产品是否开源,也并不改变产品的可用性。Android的开放性并没有带来太多好处,无论是对于最终用户还是开发者。而苹果,无论对于用户还是开发者,都是在目前条件下最好的选择。我用以下几点来论证我的观点:

1 对于用户来说,苹果用户的体验是平滑的,Android用户的体验有障碍(别的不说,就那一堆按键就足够烦人了)

2 对于用户来说,在appstore上获得的软件,无论免费还是收费,质量都高于android market

3 对于用户来说,主流Android手机和iphone的价格差距只有1/4

4 对于开发者来说,花费同样的精力可以在Cocoa平台上开发出更好的应用,因为其标准统一,不需要担心太多不必要的问题。

5 对于开发者来说,appstore完成了推广,收款代理,展示多个流程,只分30%的收益,实在超值,做共享软件的随便找个收款代理,分成比例都要至少20%这个,他们可只负责收款,你还要把更多的钱交给软件下载站,推广站...

6 对于开发者来说,Android的商用价值毫无意义,我不太可能跑去为一个汽车电子厂商工作,但我有可能业余时间写几个小程序放在appstore玩玩。

7 对于小型商业用户,平台是否封闭,许可证价格高低,对他们影响并不大,无论是WinCE还是iphone/ipad,有人能做出来好用的app才是关键(GPS导航基本都采用winCE,也卖的好好的,用户才不关心下面是CE还是Android,他们买的是导航仪)

8 对于大型商业用户,Android仍然不堪用,他们仍然要基于Linux自己开发。

9 对于所有人,Android未来并非毫无机会,但现在实在不值得投入。

我拿到ipad,会在上面做一些东西。我坚信ipad在教育,多媒体等等方面都会有非常突出的表现。原本需要买6000块钱的计算机的场合,现在用3000块钱的ipad就可以代替了,从价格上看,对大部分用户也是值得的。

Android尚且可以拿来和Cocoa平台比较,而悲剧的Symbian,甚至连被比较的价值都没有了。移动计算这个市场,距离nokia越来越远了。

english version


    
[3] Lua里模拟C的三元演算
    来源: 互联网  发布时间: 2014-02-18
Lua里模拟C的三元运算
模拟三元运算
i=1
i=i+1>3 and 1 or i+1    --累加到3后重置为1

模拟异或运算
i=i==1 and 0 or 1   


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3