kyamagu / matlab-sqlite3-driver

Matlab driver for SQLite3 database

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Not compiling in Windows 10

lyurealm opened this issue · comments

Hi everyone, I'm getting the following error when attempting to compile the mex file.

`Error using mex
api.cc
include\mexplus/mxarray.h(120): warning C4800: 'mxArray *': forzando el valor a bool 'true' o 'false' (advertencia de
rendimiento)
include\mexplus/mxarray.h(168): warning C4800: 'mxArray *': forzando el valor a bool 'true' o 'false' (advertencia de
rendimiento)
include\mexplus/mxarray.h(497): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(511): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(514): warning C4267: 'return': conversi¢n de 'size_t' a 'mwSize'; posible p‚rdida de datos
include\mexplus/mxarray.h(556): warning C4267: 'argumento': conversi¢n de 'size_t' a 'int'; posible p‚rdida de datos
Unknown compiler version - please run the configure tests and report the results
include\boost/mpl/assert.hpp(149): error C2143: error de sintaxis: falta ';' delante de '<'
include\boost/mpl/assert.hpp(153): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_assert' que se est  compilando
include\boost/mpl/assert.hpp(149): error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite
default-int
include\boost/mpl/assert.hpp(152): error C2238: s¡mbolos (token) inesperados delante de ';'
include\boost/mpl/assert.hpp(159): error C2143: error de sintaxis: falta ';' delante de '<'
include\boost/mpl/assert.hpp(163): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_assert_not' que se est  compilando
include\boost/mpl/assert.hpp(159): error C4430: falta el especificador de tipo; se presupone int. Nota: C++ no admite
default-int
include\boost/mpl/assert.hpp(162): error C2238: s¡mbolos (token) inesperados delante de ';'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/arg.hpp(45):
error C2039: 'assert_not_arg': no es un miembro de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/equal.hpp(35):
note: vea la declaraci¢n de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp(49):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::arg<1>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>' que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=int64
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/apply.hpp(63):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap2boost::mpl::protect<boost::mpl::arg<1,0>,T1,T2>' que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=int64
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/reverse_fold_impl.hpp(162):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply2<ForwardOp,boost::mpl::l_end,int64>' que se est  compilando
with
[
ForwardOp=boost::mpl::arg<1>
]
include\boost/mpl/reverse_fold.hpp(41): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::reverse_fold_impl<5,boost::mpl::l_iter<boost::mpl::list5<T0,T1,T2,T3,T4>>,boost::mpl::l_iterboost::mpl::l_end,State,BackwardOp,ForwardOp>'
que se est  compilando
with
[
T0=int64,
T1=double,
T2=std::basic_string<char,std::char_traits,std::allocator>,
T3=std::vector<uint8_t,std::allocator<uint8_t>>,
T4=sqlite3mex::NullValue,
State=boost::mpl::l_end,
BackwardOp=boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1boost::unwrap_recursive,boost::mpl::void_,boost::mpl::arg<1>>,0>,boost::mpl::2>>,
ForwardOp=boost::mpl::arg<1>
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(65):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::reverse_fold<Seq,boost::mpl::l_end,boost::mpl::bind2<boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void
>::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>,boost::mpl::arg<1>>'
que se est  compilando
with
[
Seq=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
F=boost::unwrap_recursive,
Tag=boost::mpl::void

]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(113):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::reverse_transform1_impl<P1,P2,boost::mpl::front_inserter<boost::mpl::clear_implboost::mpl::aux::list_tag::apply::type>>'
que se est  compilando
with
[
P1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
P2=boost::unwrap_recursiveboost::mpl::1,
Sequence=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>
]
include\boost/mpl/eval_if.hpp(41): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::transform1<Seq1,Seq2OrOperation,OperationOrInserter>' que se est  compilando
with
[
Seq1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
Seq2OrOperation=boost::unwrap_recursiveboost::mpl::1,
OperationOrInserter=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/transform.hpp(138):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::eval_ifboost::mpl::or
<boost::mpl::is_na<boost::mpl::na,boost::mpl::is_lambda_expression,boost::mpl::not_boost::mpl::is_sequence,boost::mpl::false
,boost::mpl::false
>,boost::mpl::transform1<Seq1,Seq2OrOperation,OperationOrInserter>,boost::mpl::transform2<Seq1,Seq2OrOperation,OperationOrInserter,Inserter>>'
que se est  compilando
with
[
Seq2OrOperation=boost::unwrap_recursiveboost::mpl::1,
Seq1=boost::mpl::list5<int64,double,std::basic_string<char,std::char_traits,std::allocator>,std::vector<uint8_t,std::allocator<uint8_t>>,sqlite3mex::NullValue>,
OperationOrInserter=boost::mpl::na,
Inserter=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/variant/variant.hpp(1178):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::transformboost::mpl::list5<T0,T1,T2,T3,T4,boost::unwrap_recursiveboost::mpl::1,boost::mpl::na,boost::mpl::na>'
que se est  compilando
with
[
T0=int64,
T1=double,
T2=std::basic_string<char,std::char_traits,std::allocator>,
T3=std::vector<uint8_t,std::allocator<uint8_t>>,
T4=sqlite3mex::NullValue
]
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\utility(198): note: vea la referencia a la creaci¢n de
instancias de plantilla de clase
'boost::variantsqlite3mex::IntegerValue,sqlite3mex::FloatValue,sqlite3mex::TextValue,sqlite3mex::BlobValue,sqlite3mex::NullValue,boost::detail::variant::void
,boost::detail::variant::void
,boost::detail::variant::void
,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void,boost::detail::variant::void'
que se est  compilando
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\deque(997): note: vea la referencia a la creaci¢n de
instancias de plantilla de clase
'std::pair<int,boost::variantsqlite3mex::IntegerValue,sqlite3mex::FloatValue,sqlite3mex::TextValue,sqlite3mex::BlobValue,sqlite3mex::NullValue,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>'
que se est  compilando
include\sqlite3mex.h(42): note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'std::dequesqlite3mex::Value,std::allocator<Ty>' que se est  compilando
with
[
Ty=sqlite3mex::Value
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(45):
error C3861: 'assert_not_arg': no se encontr¢ el identificador
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(63):
error C2039: 'assert_not_arg': no es un miembro de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/equal.hpp(35):
note: vea la declaraci¢n de 'boost::mpl'
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/apply_wrap.hpp(80):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase 'boost::mpl::arg<2>::apply<T1,T2,T3,T4,T5>'
que se est  compilando
with
[
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue,
T3=boost::mpl::na,
T4=boost::mpl::na,
T5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(50):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap5boost::mpl::arg<2,U1,U2,U3,U4,U5>' que se est  compilando
with
[
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(143):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::resolve_bind_argboost::mpl::arg<2,U1,U2,U3,U4,U5>' que se est  compilando
with
[
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/apply_wrap.hpp(80):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>::apply<T1,T2,T3,T4,T5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue,
T3=boost::mpl::na,
T4=boost::mpl::na,
T5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(160):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap5boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>,U1,U2,U3,U4,U5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux/preprocessed/plain/bind.hpp(206):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::aux::resolve_bind_argboost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>,U1,U2,U3,U4,U5>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
U1=boost::mpl::l_end,
U2=sqlite3mex::NullValue,
U3=boost::mpl::na,
U4=boost::mpl::na,
U5=boost::mpl::na
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp(49):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>::apply<T1,T2,boost::mpl::na,boost::mpl::na,boost::mpl::na>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/apply.hpp(63):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply_wrap2boost::mpl::bind2<boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::1,boost::mpl::bind1boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1<F,Tag,boost::mpl::arg<1>>,0>,boost::mpl::2>>,T1,T2>'
que se est  compilando
with
[
F=boost::unwrap_recursive,
Tag=boost::mpl::void
,
T1=boost::mpl::l_end,
T2=sqlite3mex::NullValue
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/reverse_fold_impl.hpp(58):
note: vea la referencia a la creaci¢n de instancias de plantilla de clase
'boost::mpl::apply2<BackwardOp,boost::mpl::l_end,sqlite3mex::NullValue>' que se est  compilando
with
[
BackwardOp=boost::mpl::bind2boost::mpl::lambda<boost::mpl::push_frontboost::mpl::na,boost::mpl::na,boost::mpl::void_::type,boost::mpl::_1,boost::mpl::bind1<boost::mpl::protect<boost::mpl::bind1<boost::mpl::quote1boost::unwrap_recursive,boost::mpl::void_,boost::mpl::arg<1>>,0>,boost::mpl::2>>
]
c:\users\julio\downloads\matlab-sqlite3-driver-master\matlab-sqlite3-driver-master\include\boost/mpl/aux
/preprocessed/plain/arg.hpp(63):
error C3861: 'assert_not_arg': no se encontr¢ el identificador

Error in sqlite3.make>dispAndEval (line 40)
eval(command);

Error in sqlite3.make (line 14)
dispAndEval([...`

When I run "mex -setup" I get this:

`MEX configured to use 'Microsoft Visual C++ 2015 Professional (C)' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.

To choose a different C compiler, select one from the following:
Microsoft Visual C++ 2015 Professional (C) mex -setup:C:\Users\Julio\AppData\Roaming\MathWorks\MATLAB\R2015b\mex_C_win64.xml C
Microsoft Windows SDK 7.1 (C) mex -setup:'C:\Program Files\MATLAB\R2015b\bin\win64\mexopts\winsdk-7.1_c.xml' C

To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN`

And one final question, if I compile the code in my computer, will I be able to use it in other Windows system running Matlab?

Thank you in advance for your help!

@lyurealm Could be that the bundled Boost library is not compatible with your compiler. I don't know which version of Boost supports VS2015 on Win10, but you will be able to replace include/boost directory to the newer version.

You can run the built MEX binary as long as the runtime environment is the same.

Thank you very much! I just downloaded the latest version of the bundled Boost Libray from its site, did what you say and it compiled succesfully, and it's working. Can I now delete the "include" folder or is it needed for it to work? Boost folder is like 120 MB and with lots of files.

Thank you again for your answer.

@lyurealm You can safely remove Boost. It's only necessary for build. Just be careful when you need to recompile the code you will need to get it again.