Clear Filters
Clear Filters

Windowsで生成​されたコードをLin​uxマシンでコンパイ​ルする方法は?

12 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 22 Aug 2024 at 0:00
Edited: MathWorks Support Team on 22 Aug 2024 at 23:13
Simulink Coder を使用して Windows マシンで生成されたコードを Linux マシンでコンパイルするにはどうすればよいですか?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 22 Aug 2024 at 0:00
Edited: MathWorks Support Team on 22 Aug 2024 at 23:13
次の簡単な手順に従って、Windowsで生成されたコードをLinuxマシンでコンパイルできます。これは、汎用リアルタイム ターゲット (grt.tlc) を使用してテストされています。
1. モデルのコンフィギュレーション パラメーターの[ハードウェア実行]ペインに移動します。そこで、[デバイスベンダー] を [AMD] または [Intel] に、[デバイスタイプ] を [x86-64 (Linux 64)] に選択します。
2. [コード生成]ペインに移動します。[ビルド プロセス] で、[コードとアーティファクトのパッケージ化] オプションと [コードの生成のみ] オプションを有効にします。また、[詳細設定パラメータ]下にある「Zip ファイル名」オプションに名前を指定します。これにより、コンパイルに必要なすべてのファイルがzipフォルダに配置されます。実行可能ファイルのみが必要なため、ツールチェーンアプローチを使用して、「ツールチェーン」を「Automatically locate an installed toolchain」として保持できます。
3. モデルから C/C++ コードを生成します (CTRL+B)。次に、生成されたzipフォルダを抽出し、「model_grt_rtw」という名前のフォルダ内を移動します。ここでは、次のコマンドを使用して、フォルダをフラットな構造に変換します。
モデル名を持つ新しいフォルダが生成され、この1つのフォルダにpackngoによって生成されたすべてのファイルが含まれます。
4.このフォルダをLinuxパスに配置し、次の操作を実行します。
  • フォルダ内の「defines.txt」ファイルを開き、フラグとマクロの間にスペースを入れずに、すべてのマクロの前にフラグ「-D」を追加します。
  • 次に、これらすべてのマクロ間の間隔を取り除き、1 行に配置します。
  • フォルダ内のすべてのソースファイルの名前をコピーし、マクロの行に追加します。
最終結果は次のようになります。
-DMODEL=vdp -DNUMST=2 .... VDP.c vdp_data.c classic_main.c
5.次に、コンパイルが必要なLinuxマシンから、上記の行でGCCコンパイラを呼び出します。
gcc -DMODEL=vdp -DNUMST=2 .... VDP.c vdp_data.c classic_main.c
実行可能ファイル (.out ファイル) を生成する必要があります。
上記の手順は、MATLAB コマンド ウィンドウで以下のコマンドを実行することでアクセスできる次のドキュメンテーションを簡略化したものです。
web(fullfile(docroot, 'rtw/ug/relocate-code-to-another-development-environment.html'))
現在のリリースに関する必要な情報を検索するには、次のリンクをクリックしてください。
*システムターゲットファイルがert.tlc(Embedded Coder)の場合も同じ手順になります。
*MATLAB Coder の場合のコードのパッケージ化については、下記ドキュメントページをご参照ください。
https://jp.mathworks.com/help/coder/ug/package-code-for-other-development-environments.html

More Answers (0)

Categories

Find more on コード生成 in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!