【发布时间】:2019-12-22 01:12:43
【问题描述】:
所以我有一个 .hpp 文件,我打算在 swig 中使用,但该文件有一个模板(确切地说是 Mat_<float>),但每当我运行 swig 时,我最终会得到:
example.hpp::30: Error: Syntax error in input(1).
第 30 行是:
Mat_<float> measurement(8,1);
我对 c++ 不是很熟悉(并且对于这个特定项目使用 cv2 是不可能的),并且从我发现我需要在我的 .i 文件中定义模板,但是寻找通过这些例子,我不太确定我应该如何去做。有什么帮助吗?
我的 .i 文件:
%module example
%include <opencv.i>
%cv_instantiate_all_defaults
%{
#include "example.hpp"
%}
%include "example.hpp"
(我在 OpenCV 部分使用opencv-swig)
编译/构建命令:
swig -I/home/me/Documents/.../opencv-swig/lib/ -I/usr/include -python -c++ example.i
g++ -shared -std=c++1z -fpic example_wrap.cxx $(pkg-config --cflags --libs python3) $(pkg-config --libs opencv) -o _example.so
【问题讨论】:
-
你能分享更多你的
file.hpp文件吗?和example.hpp是同一个文件吗? -
@Fifi 哦,我的错,它们是同一个文件,文件/示例只是占位符名称。已编辑。
-
你试过没有第 30 行吗?我已经收到了相同的错误消息,它与指示的行无关,但很快就出现了问题
-
@Fifi 是的。我 100% 确定这只是定义模板的问题。
-
它是否适用于其他类型? (例如
Mat_<double>)
标签: c++ python-3.x opencv swig cv2