mexfunction에서 부스트를 사용하려고합니다. 아래부스트로 mexfunction을 컴파일하는 중 링커 오류가 발생했습니다.
내 코드
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
는하지만 여전히 저도 같은 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?
편집 : 나는 어떤 문제없이 정상 비주얼 스튜디오 C++ 프로젝트에 부스트를 사용할 수 있습니다
. 이 문제는 내가 mexfunction에 넣을 때만 나온다.
mex 실행중인 링커 명령은 무엇입니까? 아마도 그것은 그것을 인쇄하는 자세한 플래그가 있습니다. –
나는 이것이 당신이 요구하는 것이라고 생각한다. 명령은 입니다. 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 " 이고 반환 된 errorCode는 2입니다. – Optimus