在mac中制作arm架构c库
我正在尝试在 Mac 中制作自己的 c 库并将其包含到我的 iphone 程序中。 c代码很简单,像这样:
math.h:
int myPow2(int);
math.c:
#include "math.h"
int myPow2(int num) {
return num*num;
}
我搜索如何制作c库文件(.a或.lib ..etc)似乎需要使用gcc编译器(还有其他方法吗?)所以我使用这个命令:
gcc -c math.c -o math.o
ar rcs libmath.a math.o
并将其包含在 iPhone 项目中。现在构建 xcode iphone 项目时出现问题。
“文件是为不受支持的文件构建的 格式不是架构 正在链接”
我发现一些讨论该问题的页面,但没有详细说明如何制作i386/arm架构库,我最终使用这个命令来做到这一点:
gcc -arch i386 -c math.c -o math.o
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 -c math.c -o math.o
我不知道这个方法是否正确?或者还有其他方法可以做到这一点?
I'm trying to make my own c library in Mac and include it to my iphone program.
The c code is simple , like this:
math.h:
int myPow2(int);
math.c:
#include "math.h"
int myPow2(int num) {
return num*num;
}
I search how to make the c library file ( .a or .lib ..etc) seems need to use gcc compiler (Is there other methods?) so I use this command:
gcc -c math.c -o math.o
ar rcs libmath.a math.o
And include it in iPhone Project. Now it has the problem when build xcode iphone project.
"file was built for unsupported file
format which is not the architecture
being linked"
I found some pages discuss about the problem, but no detail how to make the i386/arm architecture library. And I finally use this command to do it:
gcc -arch i386 -c math.c -o math.o
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 -c math.c -o math.o
I dont know if this method is correct? Or there has another method to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
巴伐利亚所说的话。
将新目标添加到您的项目中。当 XCode 询问您要使用什么模板时,选择“静态库”。
将库的文件添加到该目标。添加静态库目标作为主可执行目标的依赖项。将构建的库添加到您的主要可执行目标中。瞧!
What Bavarious said.
Add a new target to your project. When XCode asks you what template to use, chose "Static Library".
Add the files for the library to that target. Add the static library target as a dependency of your main executable target. Add the library that gets built to your main executable target. Voila!