xplayer工程用了pods,xplayerdemo_pods工程引用xplayer時又用了pods,導致如下的鏈結錯誤:
duplicate symbol _objc_metaclass_$_podsdummy_pods
類似:
duplicate symbol _objc_metaclass_$_podsdummy_pods in:/
users
/erikkerber
/dropbox
/projects
/millmain
/mylib
.framework
/buddysdk
(pods
-dummy.o
)/users
/erikkerber
/library
/developer
/xcode
/deriveddata
/millmain
-fngfqhlslygksgcfuciznkpqfrbr
/build
/products
/debug
-iphonesimulator
/libpods.a
(pods
-dummy.o
)duplicate symbol _objc_class_$_podsdummy_pods in:/
users
/erikkerber
/dropbox
/projects
/millmain
/mylib
.framework
/buddysdk
(pods
-dummy.o
)/users
/erikkerber
/library
/developer
/xcode
/deriveddata
/millmain
-fngfqhlslygksgcfuciznkpqfrbr
/build
/products
/debug
-iphonesimulator
/libpods.a
(pods
-dummy.o
)ld:2
duplicate symbols
forarchitecture i386
**********************嘗試刪除**********************
一種辦法是把demo工程裡link binary with libraries裡的libpods.a的引用刪除即可。
但是這個方法無法用於自動構建,得尋找其他方案。
我們來看符號重複的原因:
xplayer這個靜態庫工程用了pods,所以編譯鏈結了pods-dummy.m檔案。
而xplayerdemo_pods又用了pods,又編譯鏈結了新的pods-dummy.m檔案。
導致了podsdummy_pods這個類重複。
所以思路是想辦法移除或重新命名其中的乙個pods-dummy.m檔案。
發現移除是不可行的,會導致無法生成libpods.a。
**********************嘗試重新命名**********************
現在來試重新命名。
首先想到的是將xplayer裡的pods-dummy.m檔案重新命名,方法如下:
修改xplayer的podfiles檔案
end這樣xplayer工程生成的dummy類是podsdummy_pods_xplayer。
此時build xplayerdemo_pods工程會報錯說podsdummy_pods_xplayer這個符號重複了: 這是因為xplayerdemo_pods的pods包含了xplayer, 生成了第二個podsdummy_pods_xplayer類。
如果我們能修改target xplayer do裡的」xplayer」為其他字串就好了,但是目前沒有找到這種解決方案。
現在剩下的辦法是將xplayerdemo_pods裡的pods-dummy.m檔案重新命名,方法如下:
修改xplayerdemo_pods的podfiles檔案如下
platform :ios, '5.0'
target :xplayerdemo_pods do #增加target語句
pod 'xplayer', :podspec => ''
end這樣xplayerdemo_pods工程生成的dummy類是podsdummy_pods_xplayerdemo_pods。
這樣就不會和xplayer包含的dummy類podsdummy_pods重名了。
問題解決。
cocoapods導致Xcode崩潰的解決辦法
大概兩周沒關電腦了,經常用到cocoapods,可能是操作太頻繁的原因,而且我公升級到了beta版的cocopods,所以.今天重啟後,發現xcode崩潰了,且提示是因為cocoapods,開啟終端,提示 未能建立的程序或偽終端 再谷歌,沒有答案.然後我關機,重啟,有兩點收穫 1.有很多問題,重啟如...
nbsp 符號導致DIV,a,u自動換行
最近在除錯乙個網頁時候發現符號導致a,u,div等不換行。預設情況下,如果文字超過了容器的寬度,比如,100px內的a標籤裡超過了100px的文字,就會自動換行。檢視原始檔,發現,我的這個網頁下面的a裡面的文字中間的空格全是 大家知道,瀏覽器對空格的解釋是這樣 乙個空格輸出來就是乙個空格,效果相當於...
符號解析與重定位
在完成空間與位址的分配步驟之後,鏈結器就進入了符號解析與重定位的步驟,這也就是靜態鏈結的核心作用 在分析符號解析和重定位之前,首先讓我們來看看 a.o 裡面是怎麼使用這兩個外部符號,也就是說我們在 a.c 源程式裡面使用了 shared 變數和 swap 函式,那麼編譯器在將 a.c 編譯成指令時,...