Octave 3.0.3 OCTやMEX ファイルの作成

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" の参照が解決できないとか、マクロが二重定義されているとかいろいろエラーが出るのでかなり手直しが必要な模様。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年01月04日 22:59
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。