2013-06-29 14 views
0

有時,我遇到類似這樣的錯誤:如何在編譯我的Objective-C++代碼時找到缺少哪個庫?

Unkown error compiling opencv framework

我提取了同樣的錯誤,在我與ImageIO.framework,一切就迎刃而解了聯繫。但是我怎麼能知道丟失的框架是ImageIO?有沒有什麼技術可以找到?或者XCode能幫我找出答案?謝謝。

+1

這不是「未知錯誤」,它是「未定義符號錯誤」。搜索缺失的符號可能是一個好的開始。 –

+0

未定義的符號只是編譯器告訴你它需要符號的定義。 ImageIO.framework提供了這個定義。 – d00dle

回答

0

如果仔細查看錯誤消息,您會發現xcode正在告訴您缺少什麼。

Undefined symbols: "_CGImageDestinationCreateWithURL", referenced from: 
cv::ImageIOEncoder::write(cv::Mat const&, std::vector > const&) 
in OpenCV(grfmt_imageio.o) 

好的,第一搜索像列出未定義的符號:-CGImageDestinationCreateWithURL。然後看看未定義的符號來自的類的頭文件。對於CGImageDestinationCreateWithURL,它是CGImageDestination.h。看看頭文件的頂部,並檢查是否有所有他們導入的框架。在你的情況下,它是#include <CoreGraphics/CoreGraphics.h>#include <ImageIO/CGImageSource>和另一個ImageIO導入。這應該告訴你,你必須導入CoreGraphics框架和ImageIO框架。

+0

我如何知道'ImageIOEncoder'來自'ImageIO.framework'? – DNB5brims

+0

第一次放蕩的答案。 – zero3nna

+0

我喜歡爲此使用'mdfind'命令。雖然現在可能有內置於Xcode的東西,但我從來沒有打擾過:) – Krumelur

相關問題