我写了以下代码。在此代码中,我在buildscript { ... }
apply plugin: 'kotlin-platform-common'
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
compile project(':demo-js')
compile project(':demo-jvm')
}
中声明了func
:
foo.h
所以,在#pragma once
#include "stdafx.h"
#include <vector>
#include <opencv2\opencv.hpp>
#include <Eigen>
void func(std::vector<int>, cv::Mat_<float>, Eigen::Matrix<float, Dynamic, Dynamic, RowMajor>&, Eigen::VectorXf&);
:
foo.cpp
但我有以下错误:
#include "stdafx.h"
#include "foo.h"
#include <vector>
#include <opencv2\opencv.hpp>
#include <Eigen>
using namespace std;
using namespace cv;
using namespace Eigen;
void func(std::vector<int> gnd, cv::Mat_<float> _data, Eigen::Matrix<float, Dynamic, Dynamic, RowMajor> &A, Eigen::VectorXf &B)
{
//some code
}
'Dynamic': undeclared identifier
'RowMajor': undeclared identifier
'_Rows': invalid template argument for 'Eigen::Matrix', expected compile-time constant expression
'_Cols': invalid template argument for 'Eigen::Matrix', expected compile-time constant expression
如何修复此代码?
答案 0 :(得分:0)
我自己拿到了!我必须在Eigen
之前添加名称空间Dynamic
,在RowMajor
添加foo.h
:
void func(std::vector<int>, cv::Mat_<float>, Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>&, Eigen::VectorXf&);