2013-02-17 3 views
0

Я пытаюсь установить Piotr в Matlab Toolbox (http://vision.ucsd.edu/~pdollar/toolbox/doc/), но сценарий компиляции для MEX файлов жалуется:Ошибка компиляции Matlab MEX файлы (Piotr в Matlab Toolbox)

>> toolboxCompile 
Compiling....................................... 

Warning: You are using gcc version "4.6.3-1ubuntu5)". The version 
    currently supported with MEX is "4.2.3". 
    For a list of currently supported compilers see: 
    http://www.mathworks.com/support/compilers/current_release/ 

/usr/bin/ld: cannot find -lstdc++ 
collect2: ld returned 1 exit status 

mex: link of ' "/home/josh/Desktop/Project/code/toolbox/images/private/assignToBins1.mexglx"' failed. 

??? Error using ==> mex at 222 
Unable to complete successfully. 

Error in ==> toolboxCompile at 36 
for i=1:length(fs), mex([fs{i} '.c'],opts{:},[fs{i} '.' mexext]); 
end 

Как я могу идти о решении этого вопроса?

+0

вы установили г ++? похоже, у вас нет библиотеки C++. –

ответ

2
  1. Перед тем, как скомпилировать mexfiles в matlab, вам необходимо настроить ваш mex-компилятор.

    В MATLAB, тип:

    >> mex -setup 
    

    Matlab автоматически обнаруживает, что компиляторы вы установили на вашем компьютере и позволяет выбрать один из них.
    На машинах Linux вы должны использовать gcc-компилятор.

  2. Еще одна вещь, о которой вы должны позаботиться, - убедиться, что ваша переменная окружения $LD_LIBRARY_PATH указывает на то, где установлены библиотеки вашего компьютера.
    В MATLAB можно ввести:

    >> getenv('LD_LIBRARY_PATH') 
    

    и убедитесь, что это правильно.

  3. Попробуйте отредактировать toolboxCompile.m и добавьте -v в команду компиляции mex, чтобы получить более подробную информацию о компиляции.

+0

Thanks Shai; некоторые из этой информации были весьма полезными. Однако компиляция продолжается, но он больше останавливается: «Набор инструкций SSE2 не включен». – Josh

+0

@Josh - Я не знаком с этой ошибкой. В прошлый раз, когда я установил этот набор инструментов, он прошел гладко как в Linux, так и в Windows. Попробуйте посмотреть, есть ли какой-либо документ для установки в самой панели инструментов. – Shai

2

Если вы Linux (Ubuntu, но другой дистрибутив должен быть работа) пользователь:

  1. Для того, чтобы использовать некоторые системные библиотеки вместо Matlab библиотеки по умолчанию добавить эту переменную окружения вашего Bashrc (~/.bashrc):

    LD_PRELOAD =/lib/i386-linux-gnu/libc.so.6:/usr/lib/i386-linux-gnu/libstdC++. so.6:/lib/i386- Linux-ГНУ/libgcc_s.so.1;

  2. Установить г ++ - многобиблиотечный:

    APT-получить установку г ++ - многобиблиотечный

  3. Если вы работаете на 32 битной машины редактирования файла в toolboxCompile.m и заменить строку кода:

    "КЛЮЧ = { '-output'}" с "ОПТС = { 'CXXFLAGS = -msse2 -msse' '-output'}"

Смежные вопросы