Can't compile matcreat.cpp in linux

3 次查看(过去 30 天)
I can't successfully compile the example file: matcreat.cpp (provided by mathworks.) I am running linux centOS 5.6 and am using g++ version 4.1.2. My matlab version is 2010a and I am on a 64-bit machine.
I can, however, successfully compile and run matcreat.c using gcc.
The command I use to compile is:
g++ -o ~/m matcreat.cpp -I /usr/local/matlab2010a/extern/include/ -L /usr/local/matlab2010a/bin/glnxa64/ -lmat -lmx
Here are the errors I get when using g++ to compile matcreat.cpp
/usr/local/matlab2010a/bin/glnxa64//libmx.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64/libut.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<void const*>(void const*)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64/libmwfl.so: undefined reference to `std::bad_alloc::what() const@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64/libmwfl.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<bool>(bool&)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64//libmx.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64/libut.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<long>(long)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64/libut.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<bool>(bool)@GLIBCXX_3.4.9'
/usr/local/matlab2010a/bin/glnxa64//libmx.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)@GLIBCXX_3.4.9'
collect2: ld returned 1 exit status
I would like write c++ code to read and write .mat files. Thanks! -- Michael

采纳的回答

Kaustubha Govind
Kaustubha Govind 2011-5-17
编辑:John Kelly 2015-2-26
Have you tried compiling using the options file as described in the documentation: Building on UNIX Operating Systems. You are likely not linking against some additional C++ libraries.
  3 个评论
Kaustubha Govind
Kaustubha Govind 2011-5-17
Michael: If you follow the MEX command with the -v option, you will see the exact compiler/linker commands that are needed.
Michael
Michael 2011-5-20
Dear Kaustubha,
Thank you for the answer.
I used the mex command as you suggested and saw the options. This lead me to see that I needed to use g++ version 4.3.4 instead of what I was using (version 4.1.2).
I changed compilers to g++ 4.3.4 and the mex function command worked and so does compiling from a bash shell with "g++".
Problem solved.
Thanks,
Michael

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Compiler 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by