编译C++静态库的问题,急!

2012-05-25 09:50:43 +08:00
 ivanlw
现在有这个库的源码,然后新建了一个cocoa touch library,添加进所有源码,编译出来了.a的文件

然后在需要用的工程里面添加了.a文件,并添加到target里面

这时候编译提示没有找到.h文件

然后设置了Header Search Paths,这时候没有提示.h缺失的错误了,但是出来了这些错误

file was built for archive which is not the architecture being linked (i386)
"_scws_new", referenced from:
-[scwsTestViewController viewDidLoad] in scwsTestViewController.o
"_scws_set_charset", referenced from:
-[scwsTestViewController viewDidLoad] in scwsTestViewController.o

感觉应该是编译出来的库不支持i386,然后去用lipo -info查看了编译出来了.a文件,果然只支持armv7,请问怎么设置工程,才能编译出来支持i386的静态哭库呢?!

网上搜了很多相关的,都没有提到architecture设置的问题
2701 次点击
所在节点    iDev
4 条回复
raptium
2012-05-25 09:56:28 +08:00
既然是 cocoa touch,那就是 iOS 上的了,那自然不会有 i386 了
wtl
2012-05-25 10:19:08 +08:00
你需要编译一个universal library。


最简单的方法,不要直接拖.a, 而是在你的项目中加入静态库,然后链接这个静态库的target。
wtl
2012-05-25 10:21:47 +08:00
但那样往往每次clean之后静态库也会重新编译,没有直接引用.a快当。
如果你的库很大的话,还是编一个universal library好了。
yelusiku
2012-05-25 11:00:41 +08:00
现在都流行这个 https://github.com/kstenerud/iOS-Universal-Framework 了。一般人我不告诉他 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/37263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX