簡體   English   中英

Xcode 5.1 build opencv在64位模擬器上失敗

[英]Xcode 5.1 build opencv failed on 64 bit simulator

我將Xcode更新為5.1,並且在我的iOS應用程序項目中出現了許多使用opencv框架2.4的錯誤。 我的電腦是macbook air和OSX 10.9.2。

當我編譯我的項目時,它在我使用Iphone Retina(3.5英寸,4英寸)模擬器時工作正常。 但是當我使用Iphone Retina(4英寸64位)時,我在嘗試構建和運行時收到以下消息:

ld: warning: ignoring file /Users/mike/Documents/opencv2.framework/opencv2, missing required architecture x86_64 in file /Users/mike/Documents/opencv2.framework/opencv2 (3 slices)
Undefined symbols for architecture x86_64:
  "CvKNearest::CvKNearest(CvMat const*, CvMat const*, CvMat const*, bool, int)", referenced from:
  -[HomeViewController ocrTicket:] in HomeViewController.o
  "CvKNearest::~CvKNearest()", referenced from:
  -[HomeViewController ocrTicket:] in HomeViewController.o
  "cv::_InputArray::_InputArray(cv::Mat const&)", referenced from:
  -[HomeViewController ocrTicket:] in HomeViewController.o
  PreProcessImage(cv::Mat*, cv::Mat*, int, int) in HomeViewController.o
  PreProcessImageNew(cv::Mat*, cv::Mat*, int, int) in HomeViewController.o
  -[HomeViewController FromMat:ObtainRect:] in HomeViewController.o
...
ld: symbol(s) not found for architecture x86_64

Xcode升級到5.1,蘋果默認讓所有app都通過64位編譯器。 通過這種方式可以關閉:選中了

目標 - >構建設置 - >體系結構。 雙擊架構

,選擇其他 ,刪除除了

$(ARCH_STANDARD)(' - ')

,然后增加

armv7和armv7s'+'

(點)。 再次編譯清潔

簡答:從構建設置中的架構列表中刪除arm64

長答案:從Xcode 5.1開始,默認是在標准構建體系結構列表中包含arm64。 如果您使用沒有64位切片的預編譯庫(如OpenCV),這將導致問題,因為鏈接器將無法找到有效代碼。 不要擔心從架構列表中刪除arm64。 只要它位於Valid Architectures列表中,它仍然可以在64位平台上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM