Can't compile matcreat.cpp in linux

조회 수: 3 (최근 30일)
Michael
Michael 2011년 5월 17일
편집: John Kelly 2015년 2월 26일
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