CMakeがC++コードexample.cxx
からMATLAB R2011a(64ビット)のmex関数をビルドするためにVisual Studio 2010(64ビット)ソリューションファイルを書き込むようにCMakeLists.txt
を書きたいと思います。CMakeとVisual Studio 2010(64ビット)を使用してMATLAB R2011a(64ビット)mexファイルを構築する方法は?
- 私はMATLABのコンパイララッパー
mex
を使用したいが、そのような関連するMATLABライブラリをリンクする++のVisual CというVisual Studioのソリューションファイルを設定しないでください。 example.cxx
は、mexファイルに必要なMATLABライブラリを除き、依存関係はありません。- CMakeの2.8.7は、それは、Visual Studio用の64ビット・ジェネレータを使用していることなどに正しく設定されている2010年
私が今やっていることの本質は
find_package(Matlab)
add_library(example STATIC example.cxx)
target_link_libraries(example ${MATLAB_LIBRARIES})
どちらのコンパイラですリンカがエラーを発行することもありません。出力example.lib
をexample.mexw64
の名前でMATLABのパスにあるディレクトリにインストールします。私はMATLABからexample
を呼び出すと、私は、任意の提案は歓迎されているエラーメッセージ
??? Invalid MEX-file
'C:\...\example.mexw64':
C:\...\example.mexw64 is not a valid Win32 application.
を入手します!
私はこれを試しました。今私はエラーが表示されます: 'Mexファイルエントリポイントがありません。 mexFunctionのスペル(CのMEXファイルの場合) のスペル、またはMEXFUNCTION(FORTRAN MEXファイルの場合) のスペル(大文字と小文字を区別しない)を確認してください。 ???無効なMEXファイル 'C:\ ... \ example.mexw64': C:\ ... \ example.mexw64は有効なWin32 アプリケーションではありません。 –
Visual Studioでエントリポイントを明示的に指定するとソリューションファイル(プラットフォームに依存しない方法でCMakeにどのようにしてもらうにはどうすればいいですか?)、私はこのエラーメッセージを受け取ります: '???無効なMEX-ファイル 'C:\ ... \ example.mexw64': ' –
あなたのdllの関数でmexFunctionをエクスポートする必要があります。おそらくエクスポートされていないか、正しく入力されていない可能性があります。 –