2017-02-05 28 views
0

コードをMatlabからPythonに変換しようとしています。私はUbuntu 16.04LTSを実行しており、参照コードを実行するためにOctaveに依存する必要があります(Matlabは慣用的なエラーでインストールされません)。とにかく、Octaveを使ったことがないうちに、私は一歩を踏み出しましたが、インターネットで一日を過ごした後、解決策を見つけることができません。Octave:mexをコンパイルできますが、エラーが発生します: ".mexファイル関数のインストールに失敗しました"

コードの一部にmexファイルが使用されています。私はmkoctfile --mex gradientMex.cppまたはmex --mex gradientMex.cppでコンパイルできます。私は出力を得ませんが、私の作業ディレクトリにgradientMex.mexファイルが生成されます。しかし、gradientMex()を使用しようとすると、エラーfailed to install .mex file function 'gradientMex'が発生します。 mexファイルをコンパイルした後に何かする必要がありますか?

それはあらゆる使用である場合には、私は変換していたプロジェクトは、私がここから依存関係の一部をコピーするために必要な、https://github.com/autocyz/DSSTです:https://github.com/pdollar/toolbox/tree/1a3c9869033548abb0c7a3c2aa6a7902c36f39c2/channels/privatewrappers.hppsse.hpp

+1

Hmmm。おそらく 'mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp'でコンパイルしますか? – Dario

+0

それは動作するように見えます!私は今、別の無関係のエラーを取得しています。それを修正し、回答としてあなたのコメントを提出すれば、私はそれを受け入れることができます。 –

答えて

2

を、この特定のプロジェクトのソースコードでは、 mexファイルをmatlab/octaveにロードするために必要なコードは#ifdef MATLAB_MEX_FILEセクションに含まれていますが、mkoctfileはその変数をデフォルトで定義していません。だから

mkoctfile --mex -DMATLAB_MEX_FILE gradientMex.cpp 

あなたが行きます。しかし、あなたはmatlabとオクターブとの間の互換性が実際には最小限である領域を探索しており、私は他のエラーを期待しています。 YMMV、おそらくあなたのmatlabライセンスにインストールサポートが含まれている場合、おそらくmatlabをインストールすることは、プロジェクトをオクターブに移植することよりも苦痛を軽減するかもしれません。がんばろう。

関連する問題