Microsoft Visual C++ 2008 Express Edition (日本語版) をインストールしただけでは、C++ のライブラリやコマンドのパスが Octave 環境には反映されない。
C++ の vsvars32.bat ファイルの中をみると環境変数の設定があるので、これを ~/.octaverc に反映してみた。
setenv("VSINSTALLDIR",'C:\Program Files\Microsoft Visual Studio 9.0');
setenv("VCINSTALLDIR",'C:\Program Files\Microsoft Visual Studio 9.0\VC');
setenv("FrameworkDir",'C:\WINDOWS\Microsoft.NET\Framework');
setenv("FrameworkVersion",'v2.0.50727');
setenv("Framework35Version",'v3.5');
tmp_wsdk = 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\';
tmp_vs9 = 'C:\Program Files\Microsoft Visual Studio 9.0\';
tmp_net = 'C:\WINDOWS\Microsoft.NET\Framework\';
setenv ("WindowsSdkDir", tmp_wsdk);
setenv ("DevEnvDir", [tmp_vs9 'Common7\IDE;']);
setenv ("PATH", [ getenv("PATH") ";" ...
tmp_wsdk 'bin;' ...
tmp_vs9 'Common7\IDE;' ...
tmp_vs9 'VC\BIN;' ...
tmp_vs9 'Common7\Tools;' ...
tmp_net 'v3.5;' ...
tmp_net 'v2.0.50727;' ...
tmp_vs9 'VC\VCPackages;' ]);
setenv ("INCLUDE", [ getenv("INCLUDE") ";" ...
tmp_wsdk 'include;' ...
tmp_vs9 'VC\INCLUDE;' ]);
setenv ("LIB", [ getenv("LIB") ";" ...
tmp_wsdk 'lib;' ...
tmp_vs9 'VC\LIB;' ]);
setenv ("LIBPATH", [ getenv("LIBPATH") ";" ...
tmp_net 'v3.5;' ...
tmp_net 'v.2.0.50727;' ...
tmp_vs9 'VC\LIB;' ]);
以上でとりあえずコンパイル、リンクは出来るようになった。なお、「ws2_32.lib がリンクできない」というエラーが出る場合は、上記の tmp_wsdk に関係しており、マイクロソフトプラットフォーム SDK が上手くインストールされていない可能性がある。
WaveLab850 の MEXSource でいくつかのファイルを mex コマンドでコンパイルしてみたが、"mexFunction" の参照が解決できないとか、マクロが二重定義されているとかいろいろエラーが出るのでかなり手直しが必要な模様。
最終更新:2009年01月04日 22:59