matlab 2013はvs 2013をサポートしていません

4623 ワード

matlab 2013はvs 2013をサポートしていないため、
[plain] view plain copy print ?
mex -setup  
mex -setup

コンパイラが見つからないというメッセージが表示されます
解決方法は簡単で、vs 2013とvs 2012はc++コンパイラ部分で基本的に同じであるべきだという考え方です.
1、setup後にNを選択する
[plain] view plain copy print ?
Would you like mex to locate installed compilers [y]/n? n  
  •    

  • Select a compiler:   
  • [1] Intel C++ 13.0 (with Microsoft Software Development Kit (SDK) linker)   

  • [2] Intel C++ 13.0 (with Microsoft Visual C++ 2010 linker)   
  • [3] Intel C++ 13.0 (with Microsoft Visual C++ 2012 linker)   

  • [4] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker)   
  • [5] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker)   

  • [6] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker)   
  • [7] Intel Visual Fortran 13 (with Microsoft Software Development Kit (SDK) linker)   

  • [8] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2010 linker)   
  • [9] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2012 linker)   

  • [10] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker)   
  • [11] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker)   

  • [12] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker)   
  • [13] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker)   

  • [14] Microsoft Software Development Kit (SDK) 7.1   
  • [15] Microsoft Visual C++ 2005 SP1   

  • [16] Microsoft Visual C++ 2008 SP1   
  • [17] Microsoft Visual C++ 2010   

  • [18] Microsoft Visual C++ 2012   
    Would you like mex to locate installed compilers [y]/n? n
     
    Select a compiler: 
    [1] Intel C++ 13.0 (with Microsoft Software Development Kit (SDK) linker) 
    [2] Intel C++ 13.0 (with Microsoft Visual C++ 2010 linker) 
    [3] Intel C++ 13.0 (with Microsoft Visual C++ 2012 linker) 
    [4] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker) 
    [5] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker) 
    [6] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker) 
    [7] Intel Visual Fortran 13 (with Microsoft Software Development Kit (SDK) linker) 
    [8] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2010 linker) 
    [9] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2012 linker) 
    [10] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker) 
    [11] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker) 
    [12] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker) 
    [13] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker) 
    [14] Microsoft Software Development Kit (SDK) 7.1 
    [15] Microsoft Visual C++ 2005 SP1 
    [16] Microsoft Visual C++ 2008 SP1 
    [17] Microsoft Visual C++ 2010 
    [18] Microsoft Visual C++ 2012 

    2、選vs 2012即ち18
    3、デフォルトディレクトリをvs 2013のディレクトリに変更する
    [plain] view plain copy print ?
    Use C:\Program Files (x86)\Microsoft Visual Studio 11.0 anyway [y]/n? n  
  • Please enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 11.0] C:\Program Files (x86)\Microsoft Visual Studio 12.0  
  • Use C:\Program Files (x86)\Microsoft Visual Studio 11.0 anyway [y]/n? n
    Please enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 11.0] C:\Program Files (x86)\Microsoft Visual Studio 12.0
    

    4、インストール成功
    コンパイル中にlibファイルに問題が見つからない場合があります.
    [plain] view plain copy print ?
    LINK : fatal error LNK1181: cannot open input file 'gdi32.lib'   
    LINK : fatal error LNK1181: cannot open input file 'gdi32.lib' 

    たぶん調べてみるとコンパイラのアップグレードで、win 8、vs 2013ではこれはもうなくて、全然必要ありません.だから直接削除すればいいです.
    見つける
    [plain] view plain copy print ?
    C:\Users\****\AppData\Roaming\MathWorks\MATLAB\R2013b  
    C:\Users\****\AppData\Roaming\MathWorks\MATLAB\R2013b

    mexopts.batを右クリックして編集し、対応する行を次のように変更します:(kernel 32.libとuser 32.libを除くすべてのlibを削除します)
    [plain] view plain copy print ?
    set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib  /nologo /manifest   
    set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib  /nologo /manifest 

    再コンパイルに成功しました!
    変換元:http://blog.csdn.net/keithsky/article/details/20306397