Re: [問題] xcode link static library

看板MacDev作者 (遇見未來)時間18年前 (2007/09/14 23:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/12 (看更多)
※ 引述《yllan (藍永倫)》之銘言: : 標題: Re: [問題] xcode link static library : 時間: Fri Sep 14 11:33:47 2007 : : ※ 引述《Blueshiva (龍野南雲)》之銘言: : : ※ 引述《WalkingIce (會走路的冰塊)》之銘言: : : : 在高階語言寫的東西可能看起來一樣,但是經過編譯、組譯之後就差多了 : : : 也許你抓的 library 當初在編譯的時候就是以 i386 的格式 : : : 而你在 release mode 裡面卻把它當成 ppc 來解釋 : : : 所以 xcode 就抱怨它看不懂了! : : : 至於這兩者的格式哪裡不同,我就真的不清楚了....:P : : 應該是這樣沒錯,以前遇過一樣的問題~ : : : 原po一開始有提到這個 library 是他從 source 編譯出來的,所以應該不是 : : i386/ppc 二進制碼的問題 : : 用 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")可用.. : : : : 我以為只要找不到 function 就會中止 link 耶.... : : : 我猜 xcode 還是可以調整這個選項吧?! : : : function call 就是一個 JMP 的動作 : : : 因為找不到 function 的 address,也不知道要跳到哪裡去,所以就掛掉了:P : : 我在猜,這可能是 Xcode zero-link 這個功能引發的問題... : : 這是回答原 po 後半段的問題吧~應該就是這樣~ : 喔....原來是zero-link問題....謝囉.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.196.220
文章代碼(AID): #16wgDYgi (MacDev)
討論串 (同標題文章)
文章代碼(AID): #16wgDYgi (MacDev)