10

MATLAB Docからサンプルコードを実行しようとしていますが、Visual Studioでプロジェクトをビルドしようとすると、このエラーが発生します

fatal error C1083: Cannot open include file: 'engine.h': No such file or directory

実際のところ、ドキュメントでは、ヘッダーをリンクする場所を見つけることができません。他に何もする必要がないかのように例が表示されます。

#include "engine.h";

この問題を解決する方法について何かアイデアはありますか?

編集

最初の問題を解決しましたが、ライブラリが見つからないことに関連するエラーが発生します。

1>engwindemo.obj : error LNK2019: unresolved external symbol _engClose referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetClassName referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engGetVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOutputBuffer referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxDestroyArray referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engEvalString referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engPutVariable referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxGetPr referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _mxCreateDoubleMatrix_730 referenced in function _main
1>engwindemo.obj : error LNK2019: unresolved external symbol _engOpen referenced in function _main

ドキュメントに記載されているようにPath変数を設定し、libパスを設定し、いくつかのライブラリを追加しましたが、他に何ができるかわかりません。また、Path変数の変更を有効にするために、VisualStudioを再起動しました。

ここに画像の説明を入力してください 前もって感謝します。

4

4 に答える 4

12

私は最終的に問題を解決しました。私はWIN32プロジェクトを構築していましたが、matlabはx64であるため、64ビットプラットフォームをリンクしようとするとVisualStudioでエラーが発生します。解決策は、プロジェクトのプロパティ->構成マネージャー内でアクティブソリューションプラットフォームをx64に変更することです。

それは次のリンクでよく説明されています。

とにかく答えてくれてありがとう、彼らは役に立ちました。

したがって、要約すると、engine.hを使用してVisualStudio2008およびMatlab2010でc ++コードをコンパイルおよび実行できるようにするには、次の手順が必要です。

1.- [システムの詳細設定]->[環境変数]でパス変数を設定します:C:\ Program Files \ MATLAB \ R2010a \ bin \ win64(またはlibeng.dllが配置されているパス)

2.- VisualStudioのプロジェクトプロパティで、C ++-> Generalの追加のインクルードディレクトリにリンクします: "C:\ Program Files \ MATLAB \ R2010a \ extern \ include"

3.-プロジェクトのプロパティで、linker-> general、Additional Library Directories: "C:\ Program Files \ MATLAB \ R2010a \ extern \ lib \ win64 \ microsoft"

4.-リンカー->追加の依存関係に次のライブラリを追加します: libeng.lib libmx.lib

5.-リンクで説明されているように、ConfigurationManagerでActiveSolutionPlatformをx64に変更します。

于 2012-01-10T10:54:03.393 に答える
2

プロジェクトのインクルードパスにMATLABインクルードディレクトリを追加しましたか? ここに画像の説明を入力してください。ディレクトリは「C:\ ProgramFiles \ MATLAB \ R2010a \ extern\include」のようになります。

于 2012-01-10T08:36:48.590 に答える
0

忘れた場合は、libmat.dlllibmx.dllなどを含むフォルダをパスに追加してください。私にとってそれは:

C:\ Program Files \ MATLAB \ R2012a \ bin \ win64

于 2014-09-30T15:09:10.460 に答える
0

Jav_Rockの答えは完全に正しいですが、次の1つのポイントに関する情報を追加したいと思います。

1.- [システムの詳細設定]->[環境変数]でパス変数を設定します:C:\ Program Files \ MATLAB \ R2010a \ bin \ win64(またはlibeng.dllが配置されているパス)

それが何を意味するのかを理解するために3時間費やしたので、将来の研究者のためにこの瞬間を明らかにしたいと思います。WindowsにMATLABEnginedllライブラリのパスを追加する必要があります。私たちはこのようにそれを行うことができます:

マイコンピュータ->右クリック:設定。システムウィンドウを開きました。左下隅:システムの詳細設定

ここに画像の説明を入力してください

詳細設定タブ

ここに画像の説明を入力してください

ユーザーの環境変数で、[作成...]ボタンを押して、次の変数を追加します。変数名:PATH変数値:C:\ Program Files \ MATLAB \ R2016a \ bin \ win64

このパスは、libeng.dllがどこにあるかを示す参照です。重要な瞬間:VSの再起動、さらにはコンピューターの再起動が必要になる場合があります。

于 2017-08-09T13:57:58.270 に答える