作者zaimoku (遇见未来)
看板MacDev
标题Re: [问题] xcode link static library
时间Tue Sep 18 21:32:14 2007
※ 引述《zaimoku (遇见未来)》之铭言:
: ※ 引述《yllan (蓝永伦)》之铭言:
: : 标题: Re: [问题] xcode link static library
: : 时间: Fri Sep 14 11:33:47 2007
: : 应该是这样没错,以前遇过一样的问题~
: : 用 gcc compile 出 universal binary 没想像中容易喔,
: : 很多 unix 的东西直接编都只会编出 native architecture 而已。
: : 作法是先用 ppc arch 编一次,再用 intel arch 编一次,
: : 最後再用 lipo 把两个黏起来。
: : 想编 universal binary 的话,所有 dependency 都要有 ub...
: : 所以原 po 改成用 intel arch 以後就可以编了,因为他的 .a 只有 x86..
: 首先...感谢各位的解答......我想应该就是我那个.a只有for x86吧..
: 我是按网路上的说明..在mac 终端机用 make build出来的....而我那台
: mac是intel的cpu..所以.build出来的东西应该 for x86的...因为对..
: linux平台的make 不是很熟也不知道他是做了些设怎麽去改设定...
: 然後我用xcode建project而project的 arch 是设
: 成ppc i386..这样就build不出来..如果只设i386就OK.....
: 後来试了一下用xcode build library...arch设成 ppc i386..这样的.a
: 就可以在 别的project上build不管是设成i386或ppc
: 要for i386又要for ppc.. xcode只要设arch = ppc i386
: 今天试了一下他应该是build出两份op code在合并起来吧...
: 因为size变为原来只设一种的两倍大...
: 可是...如果我要设定某些function for 386.. 某些function
: for ppc..或着是某些.c档for pcc 某些.c档 for i386
: build成同一档案...不知这要如何做...??
: 上面有人提到用...lipo...应该是合并两个library成一个吧 ??
: 是否有....有可以利用 #ifdef "arch_ppc" 之类的做法吗...
: "arch_ppc"只是我举例...不知道在arch设成ppc会有没有
: 相对应的符号("arch_ppc")可用..
今天发现一个好用的网站 apple developer 的 mail list
里面还满多东西的...找了一下..找到.. __BIG_ENDIAN__
和 __LITTLE_ENDIAN__ 可以利用#define 去分别complier不同
的程式片段, __BIG_ENDIAN__是 for ppc, 而 __LITTLE_ENDIAN__
是for i386..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.196.14