編譯Xcode項目失敗,以下錯誤: 'missing required architecture arm64 in file /Users/*/Git/ocr/opencv2.framework/opencv2'如何編譯OpenCV進行iOS7(arm64)
它運作良好,如果我改變架構(構建設置下)至(ARMv7的,armv7s),而不是(ARMv7的, armv7s)。
如何改變OpenCV的Python構建腳本,添加arm64支持opencv2.framework?
編譯Xcode項目失敗,以下錯誤: 'missing required architecture arm64 in file /Users/*/Git/ocr/opencv2.framework/opencv2'如何編譯OpenCV進行iOS7(arm64)
它運作良好,如果我改變架構(構建設置下)至(ARMv7的,armv7s),而不是(ARMv7的, armv7s)。
如何改變OpenCV的Python構建腳本,添加arm64支持opencv2.framework?
最新的OpenCV iOS框架默認支持64位
它可以從以下網址下載:OpenCV download page
嘗試等待下個月。將以更強大的32/64位支持發佈新的XCode。
修改 「build_frameworks.py」 到:
def build_framework(srcroot, dstroot):
"main function to do all the work"
targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386"]
for i in range(len(targets)):
build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i])
put_framework_together(srcroot, dstroot)
試圖改變腳本,因爲你建議但不能建立 –
micahp的回答幾乎是完美的,但錯過了模擬器版本。因此,修改平臺/ IOS/build_framework.py到:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]
你需要下載一個命令行工具的Xcode 5.0.1,然後運行
python opencv/platforms/ios/build_framework.py ios
你可以上傳編譯的框架,並提供一個鏈接。我仍然收到錯誤 –
這仍然無法建立。看來zlib無法爲64位目標構建。 iOS提供了zlib,所以我不知道OpenCV是否可以使用它。我花了太多時間嘗試修改版本以使其正常工作,但是我失敗了。 – Rick
我修改下,使它儘管我目前還沒有arm64 iOS設備進行測試。
編輯:我還必須遵循https://stackoverflow.com/a/17025423/1094400
假設 「的OpenCV」 是含有從GitHub OpenCV的源的文件夾:
在每個gzlib.c, gzread.c, gzwrite.c
位於
opencv/3rdparty/zlib/
附加
:
#include <unistd.h>
在頂部現有之後包括。
此外開放opencv/platforms/ios/cmake/Modules/Platform/iOS.cmake
和變化線88從:
set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS")
到:
set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS")
此外改變buildscript在線路99 opencv/platforms/ios/build_framework.py
和100從:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "i386"]
於:
targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]
得到的文庫將包括以下:
$ xcrun -sdk iphoneos lipo -info opencv2
Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_64 arm64
雖然我有關於opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake
其限定了數據指針的大小的剩餘關注是在線14 4和17 它應該是8 64位我想,這樣如果編譯庫工作arm64我沒有測試過我會在這一點上提出進一步的調查,如果它不能正常運行。
給所有最終用戶提供一個快速註釋:OpenCV現在默認支持arm64,所以下載最新的OpenCV iOS框架即可。 – golmschenk
@Jan,我按照您的指示,但OpenCV的還是不上arm64運行。你做出了這樣一個詳細而精彩的答案 - 爲什麼不在模擬器上檢查一下,看看你能不能讓它運行? :-)
FWIW,我認爲這可能比看起來更難。在openCV的stackoverflow克隆上,有一個跡象表明這個問題可能是non-trivial。
而不是使用官方網站的opencv安裝指南中給出的終端命令,使用以下命令。爲我工作。
CD的OpenCV-2.3.1
的mkdir建立
CD打造
的cmake -G 「的Unix Makefile文件」 ..
使
須藤使安裝
我有一個類似的錯誤,但coompilation.fixed加入框架的libC++的問題沒有與arm64相關dylib
您可能會更好,詢問這一點。在OpenCV的[StackOverflow clone](http://answers.opencv.org/questions/)上。通常情況下,OpenCV的文檔非常薄。 – marko
我現在剛剛能夠構建標籤版本2.4.8,這是從2013年12月27日,沒有任何問題。 (儘管主人失敗了。)Xcode 5.0.2和OS X 10.9.1。 – febeling