E05000
は Zen 言語からC言語のソースコードやライブラリを使用する際の操作で問題がある場合に発生します。
Zen 言語からC言語を使用する方法には次のものがあります。
@cImport
を使用してCヘッダファイルからインポートするzen translate-c
を使用して Zen ソースファイルに変換するzen translate-c
を使用する際には次のコードのように ;
のつけ忘れなどC言語のソースとしてコンパイルエラーとなるような場合にこのエラーが発生します。
int add(int a, int b) {
return a + b
}
@cImport
を使用する際には次のように @cInclude
に存在しないCヘッダを記述した場合などにこのエラーが発生します。
const c = @cImport(@cInclude("bogus.h"));
@cImport
でエラーが発生した場合は E05001
も関係してきます。詳細は E05001
の説明も参照してください。
E05001
は @cImport
の記述に問題がある場合に発生します。
Zen 言語からC言語のライブラリを使用する際には組込み関数 @cImport
を使用します。
@cImport
は引数として @cInclude
や @cDefine
、@cUndef
を受け取ります。
これによって #include
や #define
、#undef
を追加して、Zen の構造体としてインポートします。
次のように @cImport
内の @cInclude
に存在しないCヘッダを記述した場合などにこのエラーが発生します。
const c = @cImport(@cInclude("bogus.h"));
存在するCヘッダを記述しているにもかかわらずこのエラーが発生する場合は、--library
オプションをつけ忘れている可能性があります。
例えば次のコードで E05001
エラーが発生する場合は --library c
オプションを指定することで解決する可能性があります。
const c = @cImport(@cInclude("stdio.h"));
@cDefine
や @cUndef
に不適切なプリプロセッサマクロ名を指定した場合にもこのエラーが発生します。
const c = @cImport(@cDefine("?", ""));
☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2020 connectFree Corporation. All rights reserved. | 特定商取引法に基づく表示
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.