ファイル構造とパスの設定
コンパイル パスの検索順序
fiaccel
は、まずコード生成パス、次に MATLAB® パスを検索して、関数の呼び出しを解決します。既定の設定では、fiaccel
はパス上で見つかった関数用のコードをコンパイルし、生成しようとします (外部関数であることを明示的に宣言した場合を除く)。"外部関数" は、MATLAB パス上に存在する関数であり、実行のために MATLAB ソフトウェアに送信されます。fiaccel
では、外部関数のコンパイルは行われず、MATLAB に送信して実行されます。
命名規則
MATLAB では、関数と生成ファイルの命名規則に従わなければなりません。
予約された接頭辞
MATLAB では、接頭辞 eml
がグローバルな C 関数と生成コード内の変数用に予約されています。たとえば、ランタイム ライブラリ関数名はすべて接頭辞 emlrt
から始まります (emlrtCallMATLAB
など)。名前の競合を避けるために、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 では、MEX ファイルに対してプラットフォーム固有の拡張子があります。
プラットフォーム | MEX ファイルの拡張子 |
---|---|
Linux® x86-64 | .mexa64 |
Windows® (32 ビット) | .mexw32 |
Windows x64 | .mexw64 |