Windows10(64bit)でMATLAB 2012b のmex setup(コンパイラ環境構築)

Windows10(64bit)でMATLAB 2012b のmex setup(コンパイラ環境構築) MATLAB/Simulink
Windows10(64bit)でMATLAB 2012b のmex setup(コンパイラ環境構築)

はじめに

※ レジストリをいじるので、本記事をもとに作業する場合は自己責任でお願いします。

MATLAB 2012bの64bitコンパイラ環境はVisual C++ 2010にする必要があるのだが、
Windows10においてはVisual C++ 2010且つ64bitコンパイラを用意するのはかなり難儀した。
よって、自分自身の忘備録として残しておく。

必要なもの

以下を入手

一応URLを書いてはいるが、マイクロソフトの都合で変わってしまう可能性は十分にある
その場合は、頑張って探してください・・・。

手順

  • VC2010 expressインストール
  • VC2010 expressに含まれれている「VC2010再配布パッケージ」だけをアンインストール
    • ※ これがあるとSDK7.1インストールに失敗する。
  • 以下のレジストリを一旦「4.0.30319」に書き換える。
    • ※ 元の数値はメモっとく。
    • ※ この数値と同名ディレクトリがあり、一致していないと該当ディレクトリを見つけてくれないっぽい。
      • これが原因でSDK7.1インストールに失敗する。
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version
    • ※レジストリの値の書き換えができない場合は、該当ディレクトリ(ClientおよびFullのあたり)のアクセス権限を変更してから書き換える。
  • SDK7.1(Microsoft Windows SDK for Windows 7 and .NET FrameWork 4 )インストール
  • レジストリを元に戻す。
  • 「Windows SDK 7.1 用 Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラム」を適用
    • SDK7.1がインストールできていないと当然失敗する。
  • MATLABを起動してmex -setup
>> mex -setup
 
Welcome to mex -setup.  This utility will help you set up  
a default compiler.  For a list of supported compilers, see  
http://www.mathworks.com/support/compilers/R2012b/win64.html 
 
Please choose your compiler for building MEX-files: 
 
Would you like mex to locate installed compilers [y]/n? n
 
Select a compiler: 
[1] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker) 
[2] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker) 
[3] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker) 
[4] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker) 
[5] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker) 
[6] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker) 
[7] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker) 
[8] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker) 
[9] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker) 
[10] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker) 
[11] Microsoft Software Development Kit (SDK) 7.1 
[12] Microsoft Visual C++ 2005 SP1 
[13] Microsoft Visual C++ 2008 SP1 
[14] Microsoft Visual C++ 2010 
 
[0] None 
 
Compiler: 14
 
Warning: The default location for Microsoft Visual C++ 2010 compiler is: 
         "C:\Program Files (x86)\Microsoft Visual Studio 10.0" 
         but either that directory does not exist or the configuration 
         is invalid. 
 
Use C:\Program Files (x86)\Microsoft Visual Studio 10.0 anyway [y]/n? y
 
Please verify your choices: 
 
Compiler: Microsoft Visual C++ 2010  
Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0 
 
Are these correct [y]/n? y
 
*************************************************************************** 
  Warning: MEX-files generated using Microsoft Visual C++ 2010 require 
           that Microsoft Visual Studio 2010 run-time libraries be  
           available on the computer they are run on. 
           If you plan to redistribute your MEX-files to other MATLAB 
           users, be sure that they have the run-time libraries. 
*************************************************************************** 
 
 
Trying to update options file: C:\Users\yokoshimaenaga\AppData\Roaming\MathWorks\MATLAB\R2012b\mexopts.bat 
From template:              C:\PROGRA~1\MATLAB\R2012b\bin\win64\mexopts\msvc100opts.bat 
 
Done . . . 
 
************************************************************************** 
  Warning: The MATLAB C and Fortran API has changed to support MATLAB 
           variables with more than 2^32-1 elements.  In the near future 
           you will be required to update your code to utilize the new 
           API. You can find more information about this at: 
           http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html 
           Building with the -largeArrayDims option enables the new API. 
************************************************************************** 

登録キーの取得

このままだと30日の試用期間が過ぎるとコンパイルできなくなると思われる。
(もしかしたらVC++2010が使えなくなるだけでmexの作成はできるかもしれないが。)

以前は、VC++2010の「ヘルプ」の「製品の登録」から登録キーの作成ができたのだが、今は登録ページに飛べなくなっている。
「Visual Studio Subscriptions」からアカウントを作成するか、
VC++2017 expressをインストールして、こちらの「ヘルプ」の「製品の登録」から登録ページに飛ぶかをして対処する必要がある。

コメント

タイトルとURLをコピーしました