我一直在Xcode中開發iOS應用程序。它在常規模擬器中編譯和運行完美,但是當我將模擬器設備切換到64位時,失敗了13個新警告和37個新錯誤,所有這些都與我正在使用的外部庫相關聯(我認爲)稱爲ObjectiveDDP
(https://github.com/boundsj/ObjectiveDDP)。人們有類似的問題,但我的理解是,他們應該固定在最近發佈的框架更新中,但在我的最後,這個更新是無濟於事的。我使用的第二個框架是SocketRocket
(https://github.com/square/SocketRocket),但我不認爲這是Xcode輸出的罪魁禍首。與64位模擬器的Xcode Mach-O鏈接器錯誤
此外,很明顯,很多人都有這樣的Mach-O錯誤來自與64位不兼容的框架。但是,我覺得這是組織我的文件的問題。話雖如此,我也認爲總體問題是這樣的: Ignoring file /path/to/project/ObjectiveDDP/libcrypto.a, missing required architecture x86_64 in file /path/to/project/ObjectiveDDP/libcrypto.a
。有沒有辦法通過添加該體系結構來解決該文件中的這個問題?根據對類似問題的回答,我嘗試將我的構建設置體系結構更改爲Standard architectures(armv7, armv7s, arm64)
,並重新檢查是否滿足其他依賴關係。
以下是錯誤的一部分:
Undefined symbols for architecture x86_64:
"_BN_CTX_free", referenced from:
_srp_verifier_new in srp.o
_srp_user_start_authentication in srp.o
_meteor_user_generate_kgx in srp.o
_meteor_user_generate_aux in srp.o
_meteor_user_generate_S_string in srp.o
"_BN_CTX_new", referenced from:
_srp_verifier_new in srp.o
_srp_user_start_authentication in srp.o
_meteor_user_generate_kgx in srp.o
_meteor_user_generate_aux in srp.o
_meteor_user_generate_S_string in srp.o
_srp_user_process_meteor_challenge in srp.o
"_BN_add", referenced from:
_srp_verifier_new in srp.o
_meteor_user_generate_aux in srp.o
"_BN_bin2bn", referenced from:
_srp_verifier_new in srp.o
_H_nn in srp.o
_meteor_user_generate_u in srp.o
_meteor_user_generate_x in srp.o
_meteor_user_generate_k in srp.o
_meteor_user_generate_M_string in srp.o
_meteor_user_generate_HAMK in srp.o
...
和截圖什麼的錯誤看起來像在Xcode:
我的研究後,我還是想知道,如果這是隻是一個模擬器問題,它會在物理iPhone 5S上進行測試時自行解決,並且簡單地說我可以如何擺脫這些錯誤?這裏有沒有什麼建議文件組織問題?另外兩個警告是:
ld: warning: directory not found for option '-L/path/to/place/projectname/projectname/ObjectiveDDP' ld: warning: directory not found for option '-L/path/to/place/projectname/SocketRocket/ObjectiveDDP'
而且這兩條路徑不存在,但我認爲我糾正它被刪除的文件夾,將其移動到回收站,並重新添加。
任何有識之士將不勝感激。
釘住它。我不需要64位支持,所以就像你建議我改變了架構。感謝您作出澄清;我認爲我的困惑是我認爲我需要爲iPhone 5S支持64位。乾杯! – zch