在使用 g++ 的 Ubuntu Saucy 64 位终端上,我试图用一种没有强大 C++ ffi 的语言来包装 OpenCV,所以我试图使用 C++ 到 C 包装器来帮助做到这一点......这是我试图转换的文件的一小部分只是为了感受一下(opencv_generated.hpp 和 opencv_generated.cpp 在这个链接https://github.com/arjuncomar/opencv-raw)
opencv_生成的 hpp:
#include <opencv2/opencv.hpp>
#include <vector>
#ifndef __OPENCV_GENERATED_HPP
#define __OPENCV_GENERATED_HPP
using namespace cv;
using namespace std;
using namespace flann;
using namespace cvflann;
extern "C" {
Mat* cv_imread(String* filename, int flags);
void cv_imshow(String* winname, Mat* mat);
bool cv_imwrite(String* filename, Mat* img, vector_int* params);}
opencv_generated.cpp:
#include "opencv_generated.hpp"
using namespace cv;
using namespace std;
using namespace flann;
using namespace cvflann;
extern "C" {
Mat* cv_imread(String* filename, int flags) {
return new Mat(cv::imread(*filename, flags));
}
void cv_imshow(String* winname, Mat* mat) {
cv::imshow(*winname, *mat);
}
bool cv_imwrite(String* filename, Mat* img, vector_int* params) {
return cv::imwrite(*filename, *img, *params);
}}
我是 C++ 的 C 包装器的新手,我正在尝试编译
g++ -Wall -dynamiclib -I/home/w/test/opencv_generated.hpp
-I/home/w/test/opencv_generated.cpp -o test.so
我收到错误:
g++: fatal error: no input files
...我在我的 opencv_generated.cpp 和 opencv_generated.hpp 文件所在的目录中,所以我做错了什么??....任何帮助==非常有价值=)