Matlab mex命令,用于在Windows中Armadillo中构建armaMex_demo.cpp

Matlab mex命令,用于在Windows中Armadillo中构建armaMex_demo.cpp,windows,visual-studio-2017,mex,armadillo,Windows,Visual Studio 2017,Mex,Armadillo,我在Windows中使用Matlab(2018a)在Armadillo(Armadillo-8.500.1)中使用armaMex_demo_cpp时遇到问题 到目前为止,我正在尝试以下命令: >> mex -LC:\Users\Test\Documents\Armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo -LC:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\ming

我在Windows中使用Matlab(2018a)在Armadillo(Armadillo-8.500.1)中使用armaMex_demo_cpp时遇到问题

到目前为止,我正在尝试以下命令:

>> mex -LC:\Users\Test\Documents\Armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo -LC:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\gfortran -IC:\Users\Test\Documents\Armadillo\armadillo-8.500.1-mod_for_windows\include armaMex_demo.cpp
并获取错误消息(已截断):

有人知道我在这里做错了什么吗


有没有人可以使用mex命令在Windows中为armaMex_demo.cpp构建mex文件?

似乎与我如何包括/引用BLAS有关。我曾经在config.hpp中未注释行“#define ARMA_USE_BLAS”。通过将其保留为注释I,使用此mex命令:

mex-LC:\Users\Test\Documents\Armadillo\Armadillo-8.500.1-mod_for_windows\include\Armadillo-LC:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\gfortran-IC:\Users\Test\Documents\Armadillo\Armadillo\Armadillo-8.500.1-mod_for_for_windows\include armammex\u demo.cpp

我只得到以下错误:

用微软Visual C++ 2017构建。

使用mex时出错 armaMex_demo.cpp C:\Users\Test\Documents\Armadillo\Armadillo-8.500.1-mod_for_windows\mex_interface\armaMex_demo.cpp(44):错误C2668:“arma::size”:对 重载函数

c:\users\test\documents\armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo_bits/fn_size.hpp(38):注意:可能是“const”

arma::SizeMat arma::大小(常数T1&)' 具有 [ T1=arma::mat ]

C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\xutility(1654):注意:或“arma::uword” 标准::大小(常量容器和) 具有 [ _容器=arma::mat ] C:\Users\Test\Documents\Armadillo\Armadillo-8.500.1-mod_for_windows\mex_interface\armaMex_demo.cpp(44):注意:尝试匹配参数列表时
“(arma::mat)”

并通过更改行

如果(尺寸(X)!=尺寸(Y))

如果(X.size()!=Y.size())

在armaMex_demo.cpp中

mexing(和mex调用)在Matlab的Windows中工作

Building with 'Microsoft Visual C++ 2017'.
Error using mex
armaMex_demo.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\random(31): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\random(31): error C2146: syntax error: missing ';' before
identifier 'ARMA_USE_BLAS'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\random(31): error C2143: syntax error: missing ';' before
'{'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\random(31): error C2447: '{': missing function header
(old-style formal list?)
c:\users\test\documents\armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo_bits/arma_rng_cxx11.hpp(28): error C2039: 'mt19937_64': is not a
member of 'std'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\atomic(42): note: see declaration of 'std'
c:\users\test\documents\armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo_bits/arma_rng_cxx11.hpp(28): error C3083: 'mt19937_64': the symbol
to the left of a '::' must be a type
c:\users\test\documents\armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo_bits/arma_rng_cxx11.hpp(28): error C2039: 'result_type': is not a
member of 'std'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include\atomic(42): note: see declaration of 'std'
c:\users\test\documents\armadillo\armadillo-8.500.1-mod_for_windows\include\armadillo_bits/arma_rng_cxx11.hpp(28): error C3646: 'seed_type': unknown
override specifier