最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
MATLAB® Coder™ は、まず "コード生成パス"、次に MATLAB パスを検索して、MATLAB 関数の呼び出しを解決します。コード生成パスには、現在のフォルダーとコード生成ライブラリが含まれています。既定では、関数が、MATLAB Coder によって外部関数であると判断されるか、明示的に外部関数として宣言されていない限り、MATLAB Coder はパス上で見つけた関数をコンパイルし、コードを生成しようとします。MATLAB Coder は外部関数をコンパイルせず、MATLAB に実行させるためにディスパッチします。コード生成における関数呼び出しの解決を参照してください。
カスタム コード (ソース、ヘッダー、ライブラリ ファイルなど) を生成コードと統合するには、追加の検索用フォルダーを指定します。以下の表は、これらの検索パスを指定する方法を示します。パスに以下を含めないでください。
スペース (スペースを使用すると、オペレーティング システムの構成によっては、コード生成に失敗する可能性があります)
タブ
\
、$
、#
、*
、?
非 7 ビット ASCII 文字 (日本語など)
追加フォルダーを指定する方法 | 手順 |
---|---|
MATLAB Coder アプリの使用 |
|
コマンド ラインの入力 | 関数 codegen の -I オプションを使用します。 |
MATLAB Coder では、MATLAB 関数と生成ファイルの命名規則に従わなければなりません。
MATLAB Coder では、接頭辞 eml
がグローバルな C/C++ 関数と生成コード内の変数用に予約されています。たとえば、MATLAB のコード生成用ランタイム ライブラリの関数名は接頭辞 emlrt
から始まります (emlrtCallMATLAB
など)。名前の競合を避けるために、C/C++ 関数または主要な MATLAB 関数の名前には接頭辞 eml
を付けないでください。
MATLAB Coder ソフトウェアは、ソフトウェアが独自に使用するワードを生成コード言語のキーワードとして予約します。MATLAB Coder のキーワードは MATLAB Coder ソフトウェア内部で使用するために予約されているので、MATLAB コード内で識別子や関数名として使用しないでください。また、C の予約キーワードも MATLAB コード内で識別子または関数名として使用しないでください。コード ジェネレーターが名前を変更できない予約キーワードが MATLAB コードに含まれている場合、コード生成ビルドは完了せず、エラー メッセージが表示されます。このエラーに対処するには、予約されていない識別子または名前を使用するようにコードを変更します。
さらに、MATLAB Coder ソフトウェアで C++ コードを生成する場合は、MATLAB コードにC++ の予約キーワードを含めないでください。
C の予約キーワード
assert | extern | setjmp | string |
auto | fenv | short | struct |
break | float | signal | switch |
case | for | signed | tgmath |
char | goto | sizeof | threads |
const | if | static | time |
complex | int | stdalign | typedef |
continue | inttypes | stdarg | uchar |
ctype | iso646 | stdatomic | union |
default | limits | stdbool | unsigned |
do | locale | stddef | void |
double | long | stdint | volatile |
else | math | stdio | wchar |
enum | register | stdlib | wctype |
errno | return | stdnoreturn | while |
C++ の予約キーワード
algorithm | cstddef | iostream | sstream |
any | cstdint | istream | stack |
array | cstdio | iterator | static_cast |
atomic | cstdlib | limits | stdexcept |
bitset | cstring | list | streambuf |
cassert | ctgmath | locale | string_view |
catch | ctime | map | strstream |
ccomplex | cuchar | memory | system_error |
cctype | cwchar | memory_resource | template |
cerrno | cwctype | mutable | this |
cfenv | delete | mutex | thread |
cfloat | deque | namespace | throw |
chrono | dynamic_cast | new | try |
cinttypes | exception | numeric | tuple |
ciso646 | execution | operator | typeid |
class | explicit | optional | type_traits |
climits | export | ostream | typeindex |
clocale | filesystem | private | typeinfo |
cmath | foreward_list | protected | typename |
codecvt | friend | public | unordered_map |
complex | fstream | queue | unordered_set |
condition_variable | functional | random | using |
const_cast | future | ratio | utility |
csetjmp | initializer_list | regex | valarray |
csignal | inline | reinterpret_cast | vector |
cstdalign | iomanip | scoped_allocator | virtual |
cstdarg | ios | set | wchar_t |
cstdbool | iosfwd | shared_mutex |
コード生成用の予約キーワード
abs | fortran | localZCE | rtNaN |
asm | HAVESTDIO | localZCSV | SeedFileBuffer |
bool | id_t | matrix | SeedFileBufferLen |
boolean_T | int_T | MODEL | single |
byte_T |
int8_T | MT | TID01EQ
|
char_T | int16_T | NCSTATES | time_T |
cint8_T | int32_T | NULL | true |
cint16_T | int64_T | NUMST | TRUE |
cint32_T | INTEGER_CODE | pointer_T | uint_T |
creal_T | LINK_DATA_BUFFER_SIZE | PROFILING_ENABLED
| uint8_T |
creal32_T | LINK_DATA_STREAM | PROFILING_NUM_SAMPLES | uint16_T |
creal64_T | localB | real_T | uint32_T |
cuint8_T | localC | real32_T | uint64_T |
cuint16_T | localDWork | real64_T | UNUSED_PARAMETER |
cuint32_T | localP | RT | USE_RTMODEL
|
ERT | localX | RT_MALLOC
| VCAST_FLUSH_DATA |
false | localXdis | rtInf | vector |
FALSE | localXdot | rtMinusInf |
MATLAB Coder コード置換ライブラリのキーワード- 開発環境に対応したコード置換ライブラリ (CRL) の予約キーワードのリストは、どの CRL が現在登録されているかによって異なります。MATLAB Coder ソフトウェアで提供されている既定の ANSI®、ISO® および GNU® の各 CRL だけでなく、CRL を提供するその他の製品 (ターゲット製品など) をインストールしているか、Embedded Coder® API を使用してカスタムの CRL を作成および登録したことがある場合は、追加の CRL を登録して使用することができます。
現在お使いの環境に登録されている CRL に対応した予約キーワードのリストを生成するには、次の MATLAB 関数を使用します。
crl_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers()
この関数は、CRL キーワードを含む文字ベクトルの cell 配列を返します。戻り引数の指定はオプションです。
メモ
お使いの環境で現在登録されている CRL をリストするには、MATLAB コマンド crviewer
を使用します。
コード生成に使用する CRL の予約キーワードのリストを生成するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] 、 [インターフェイス] ペインにある [コード置換ライブラリ] メニューに表示される CRL の名前を渡す関数を呼び出します。以下に例を示します。
crl_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers('GNU99 (GNU)')
関数出力の一部の例を次に示します。
>> crl_ids = RTW.TargetRegistry.getInstance.getTflReservedIdentifiers('GNU99 (GNU)') crl_ids = 'exp10' 'exp10f' 'acosf' 'acoshf' 'asinf' 'asinhf' 'atanf' 'atanhf' ... 'rt_lu_cplx' 'rt_lu_cplx_sgl' 'rt_lu_real' 'rt_lu_real_sgl' 'rt_mod_boolean' 'rt_rem_boolean' 'strcpy' 'utAssert'
メモ
返されるキーワードの中には、'rt_atan2$N'
のように接尾辞 $N
とともに表示されるものがあります。$N
は、非有限数がサポートされている場合にのみ接尾辞 _snf
に展開されます。たとえば、'rt_atan2$N'
は、非有限数がサポートされている場合は 'rt_atan2_snf'
になり、非有限数がサポートされていない場合は 'rt_atan2'
になります。念のため、両方の形式のキーワードを予約済みとして処理してください。
次の表は、MATLAB Coder による生成ファイルの命名方法を示します。MATLAB Coder は、MEX ファイルにプラットフォーム固有の拡張子を付けることで MATLAB 規則に従います。
プラットフォーム | MEX ファイルの拡張子 | MATLAB Coder スタティック ライブラリの拡張子 | MATLAB Coder 共有ライブラリの拡張子 | MATLAB Coder 実行可能ファイルの拡張子 |
---|---|---|---|---|
Linux® (64 ビット) | .mexa64 | .a | .so | なし |
Mac (64 ビット) | .mexmaci64 | .a | .dylib | なし |
Windows® (64 ビット) | .mexw64 | .lib | .dll また、 .dll に対するリンクの作成に必要な、.lib 拡張子をもつインポート ライブラリを生成します。 | .exe |