我想在Objective-C++代碼中使用OpenCV,我將從Swift中調用它。首先,我使用this answer來連接Objective-C和Swift。所以這些操作後,我得到三個文件:不同的C++語句在Objective-C頭文件中拋出錯誤
橋接-Header.h:
#import "opencvtest.h"
opencvtest.h:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#include <opencv2/core/core.hpp>
//#include <dlib/image_loader/load_image.h>
@interface CustomObject : NSObject
- (cv::Mat)cvMatFromUIImage:(UIImage *)image;
@end
opencvtest.mm:
#import "opencvtest.h"
錯誤:
/Users/user/Documents/XcodeProjects/Swift_HelloWorld/Swift_HelloWorld/Swift_HelloWorld-Bridging-Header.h:5:9: note: in file included from /Users/user/Documents/XcodeProjects/Swift_HelloWorld/Swift_HelloWorld/Swift_HelloWorld-Bridging-Header.h:5:
#import "opencvtest.h"
^/Users/user/Documents/XcodeProjects/Swift_HelloWorld/Swift_HelloWorld/opencvtest.h:23:4: error: expected a type
- (cv::Mat)cvMatFromUIImage:(UIImage *)image; ^<unknown>:0: error: failed to import bridging header '/Users/user/Documents/XcodeProjects/Swift_HelloWorld/Swift_HelloWorld/Swift_HelloWorld-Bridging-Header.h'
另外,如果我在opencvtest.h添加一行#include <dlib/image_loader/load_image.h>
然後我得到:
/usr/local/include/DLIB/string/string.h:7:10: error: 'sstream' file not found
#include <sstream>
^
<unknown>:0: error: failed to import bridging header '/Users/user/Documents/XcodeProjects/Swift_HelloWorld/Swift_HelloWorld/Swift_HelloWorld-Bridging-Header.h'
我要注意,只有發生這些錯誤,當我把這些包含在這個頭聲明,當我用它在.mm文件中工作正常。但我需要他們在標題中進行聲明。
那麼,我該如何解決它?
嗯...我沒有想到這一點。絕對清楚,謝謝! :) –