iOS 从C移植项目到Objective-C
一、新建项目
iOS | Framework & Library
Cocoa Touch Static Library
新建一个Library库
1. M.h头文件
#ifndef M_h
#define M_h #include <stdio.h>
void testSleep(int t); void testPthread(int n); #endif /* M_h */
2. M.c实现文件
#include "M.h"
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h> void testSleep(int t)
{
printf("testSleep:\n");
int i;
for (i=; i<; i++)
{
printf("sleep...\n");
usleep(t*);
printf("return...\n");
}
} void *thrFun(void *p)
{
int t = (int)p;
int i;
for (i = ; i<; i++)
{
printf("thrFun %d\n", t);
sleep();
}
return NULL;
} void testPthread(int n)
{
void *retval;
pthread_t *tid = (pthread_t *)malloc(sizeof(pthread_t)*n);
int i;
for (i=; i<n; i++)
pthread_create(&tid[i], NULL, thrFun, (void *)i);
for (i=; i<n; i++)
pthread_join(tid[i], &retval);
}
cmd + B 编译,此时只编译模拟器了版本,可以连接手机编译真机版本静态库文件,编译成功后会在电脑上生成相关的.a静态库文件;
libM.a文件所在目录
/Users/xx/Library/Developer/Xcode/DerivedData/M-xxx/Build/Products/Debug-iphonesimulator
/Users/xx/Library/Developer/Xcode/DerivedData/M-xxx/Build/Products/Debug-iphoneos
两个路径分别是模拟器,真机版本的输出目录。
将libM.a库文件和M.h头文件拷贝到外部项目即可使用静态库里面的函数了。
二、查看 .a 文件支持的平台
通过lipo命令来查看
lipo -info xxLibrary.a
输出结果:
Architectures in the fat file: xxLibrary.a are: armv7 armv7s i386 x86_64 arm64
上面几个平台分别对应的手机
- armv7是iphone5之前的设备指令集架构;
- armv7s是iphone5、iphone 5s的指令集架构;
- arm64是iphone6、iphone 6plus的指令集架构;
- i386以及x86_64是MAC的指令集架构;
如果某个 .a 文件只支持某一个平台,但我们的应用在发布的时候,都会需要支持所有平台的库,所以build会报错,此时可以把各个支持单个平台的 .a 文件合并。
lipo -create XXXX_V7.a XXXX_V7s.a -output XXXX_all.a
三、查看 .framework 文件支持的平台
lipo -info ./****.framework/****
输出结果:
Architectures in the fat file: ./****.framework/**** are: i386 armv7 armv7s
如此便可查看你工程中的静态库是否支持64位。
iOS 从C移植项目到Objective-C的更多相关文章
- IOS之UI--小实例项目--综合使用
前言: 本博文是基于前一个小实例项目:IOS之UI--小实例项目--添加商品和商品名 进行继续综合学习积累的. 内容大纲 01-综合使用01-plist的使用 02-综合使用02-模型取代字典的好处分 ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- Github上关于iOS的各种开源项目集合2(强烈建议大家收藏,查看,总有一款你需要)
资源list:Github上关于大数据的开源项目.论文等合集 Awesome Big Data A curated list of awesome big data frameworks, resou ...
- Eclipse打war包方法以及Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported
打包时: 在项目上右键选择Export,如图: 然后选择WAR file,如图所示.接着再:其中web projecct为打出来包的名字, Destination,打包后存的位置,点击Browse.. ...
- Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported
Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported 如果原有项目用的为JDK1.7,而自己的是低版本JDK,比如1. ...
- 异数OS国产CPU平台移植项目需求分析
异数OS国产CPU平台移植项目需求分析 目录 异数OS国产CPU平台移植项目需求分析 项目立项背景 项目需求分析 异数OS性能指标简介 1.TCP协议栈性能测试 2.异数OS-织梦师-水母 消息队列性 ...
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...
- github上关于iOS的各种开源项目集合(转)
UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...
- 转: Github上关于iOS的各种开源项目集合
https://blog.csdn.net/jiashaoying/article/details/79079500 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. ...
随机推荐
- 一步一步写一个简单通用的makefile(一)
经常会用写一些小的程序有的是作为测试,但是每次都需要写一些简单的GCC 命令,有的时候移植一些项目中的部分代码到小程序里面进行测试,这个时候GCC 命令并不好些,如果写啦一个比较常用的makefile ...
- UVA 11802 All Your Bases Belong to Us
题意:这个题题意个人觉得蛮难懂的....意思就是求,把十进制下的n!转化成m进制,末位有且仅有k个连续的0.告诉n和k,求满足题意的m有多少个. 1<= k <= 10^15,n < ...
- 5 approach to load UIView from Xib
After the past few years I found that the only manageable way for creating/maintaining view (or any ...
- Node调试工具JSHint
Node调试工具JSHint的安装及配置教程 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-27我要评论 Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成 ...
- 跟着百度学PHP[7]会话控制(session与cookie) 1.cookie的设置
参考慕课网:http://www.imooc.com/learn/26 参考W3C:http://www.w3school.com.cn/php/php_cookies.asp setcookie() ...
- bash shell——与if条件相关的参数意义
最近编写脚本,常看到有 if [ -x $variable ] 类的条件语句,不知道相应参数的意义到底是什么, 特摘录如下:from http://blog.csdn.net/aaaaatiger ...
- Yii2中request的使用方法
1.普通的get和pst请求 $request = Yii::$app->request; $get = $request->get(); // 等同于: $get = $_GET; $i ...
- ActiveForm
ActiveForm要和Model一起使用 我想在你的控制器的action中,至少应该这么写: /*action*/ $model = new Comments(); //实例化 Comments m ...
- github pages简易指南
在我之前的博客用Octopress在Github pages上写博客(博客园上,github pages上)中介绍了怎么在Github Pages上写博客,今天发现了一个很不错的github page ...
- Windows XP下安装WinCE6.0开发环境
Windows下怎样编译WinCE6.0及开发应用程序.以下介绍(安装之前必须保证C盘有足够的空间!20g左右!主要是由于在安装程序在安装过程中要解压): 在Visual Studio 2005之前, ...