Я пытаюсь использовать boost в mexfunctions.Ошибка компоновщика при компиляции mexfunction с boost
Ниже мой код
main.cpp
#include <mex.h>
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("test boost");
}
я скомпилировать его с помощью следующей команды
mex main.cpp -LC:\Boost\1.55.0\VC\10.0\x64\stage\lib -IC:\Boost\1.55.0\VC\10.0\x64
Тогда я получаю эту ошибку, связывающую
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-1_55.lib'
C:\PROGRA~1\MATLAB\R2012A\BIN\MEX.PL: Error: Link of 'main.mexw64' failed.
Тогда я собрал еще раз, используя,
mex main.cpp -LC:\Boost\1.55.0\VC\10.0\x64\stage\lib -IC:\Boost\1.55.0\VC\10.0\x64 -llibboost_thread-vc100-mt-s-1_55
Но все-таки я получаю ту же ошибку. Как я могу это решить?
EDIT:
я могу использовать импульс в обычном визуальной Studio C++ проекта без каких-либо проблем. Проблема возникает только тогда, когда я помещаю ее в mexfunction.
Какая команда компоновщика работает для вас? Возможно, у него есть подробный флаг для печати. –
Я думаю, что это то, о чем вы просите. Команда errCode = runCmdInShell (cmdtool, cmdargs); где "cmdtool = " C: \ Program Files \ MATLAB \ R2012a \ sys \ perl \ win32 \ bin \ perl.exe "" C: \ Program Files \ MATLAB \ R2012a \ bin \ mex.pl "" и "cmdargs = -called_from_matlab -matlab "C: \ Program Files \ MATLAB \ R2012a" main.cpp -LC: \ Boost \ 1.55.0 \ VC \ 10.0 \ x64 \ stage \ lib -IC: \ Boost \ 1.55.0 \ VC \ 10.0 \ x64 -lboost_thread-vc100-mt-1_55 " , а возвращенный код ошибки - 2 – Optimus