教えていない失敗例。
1 MinGW64 C/C++ コンパイラをダウンロード
ダウンロード リンク: https://sourceforge.net/projects/mingw-w64/files/
Baidu クラウドのダウンロード リンク: リンク: https://pan.baidu.com/s/11erb1P3KLAFD1UxCJIZ8Tw?pwd=jvh6
抽出コード: jvh6
1. をクリックします。Files
:
2. 下の図が表示されるまで引き下げ、 をクリックしますx86_64_win32_sjlj
。(使用しているMATLABはR2019aで、バージョン6.4.0であれば正常にインストールできます。)
3. ダウンロード後の解凍先フォルダーにはスペースが入っていないことを確認してください!親フォルダーにもスペースを含めないでください。Program Files
動作しないでしょう。
4. システム環境変数を追加します。
(1) [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
(2) 「システムの詳細設定」をクリックします。
(3) [詳細設定]、[環境変数] をクリックします。
(4) [システム環境変数]、[新規作成] をクリックします。
常に確認するだけです。
2 Matlab のインストールと構成
matlab コマンド ラインに次のように入力します。
setenv('MW_MINGW64_LOC','C:\mingw64')
mex -setup
mex -setup c++
3 コンパイルテスト
.m 関数を作成します。関数 (関数) のみが dll/lib/c/h ファイルをコンパイルして生成できます。
test_func.m
function [add,minus] = test_func(num1,num2)
add = num1 + num2;
minus = num1 + num2;
end
保存後、このフォルダーに次のコマンド ラインを入力します。
mcc -W cpplib:test_func -T link:lib test_func.m -C
説明:
-W はコンパイル後のパッケージ化形式を制御します。
-T はターゲットを意味し、link:lib はライブラリ ファイルに接続されるターゲットを意味し、ターゲットの名前は .m 関数の名前です。
その他の特定の意味は、mcc –help コマンドを使用して確認できます。パラメータの大文字と小文字に注意してください。
フォルダーに入ると、dll/lib/c/h ファイルがコンパイルされて生成されていることがわかります。
4 別のコンパイル方法
コマンドライン入力:
mbuild -setup
mex -setup C++ -client MBUILD
deploytool
ポップアップがクリックされるまで待ちますLibrary Compiler
。
以下の図に従って、「C++ 共有ライブラリ」をクリックし、プラス記号 をクリックすると+
、下部に生成される 4 つのファイルが表示されます。「」をクリックしPackage
、「」をクリックします确定
。
操作が完了すると、フォルダー内に .prj ファイルとフォルダーが生成されます。
文件路径:
test_func.m
test_func.prj
test_func
- for_redistribution
- MyAppInstaller_web.exe
- for_redistribution_files_only
- v2
- test_func.dll *****
- test_func.h *****
- test_func.lib *****
- GettingStarted.html
......
アスタリスクの付いたファイルは*****
必須です。
5 この DLL は使用できません。!
test_func.h、test_func.dll、test_func.lib を Qt プロジェクト ディレクトリにコピーし、pro ファイルの下にさまざまな matlab ファイル パスを追加して、main.cpp ファイルの下の .h ファイル内の関数を使用しますが、コンパイルは完了していません。合格しました!!!ファイルが見つからないか、アクセス許可がブロックされています。
参考リンク:
https://www.cnblogs.com/zzzsj/p/14630559.html