E4156#
extern “A” is unsupported in B backend.
This error happens when an FFI function written for a specific backend is discovered during the compilation of a different backend.
错误示例#
///|
pub extern "C" fn getchar() -> Int = "getchar"
建议#
You can use conditional compilation to control when the function is available.
If you want a file level conditional compilation, configure the targets field.
moon.pkg.json#{ "targets": { "top.mbt": ["native"] } }
top.mbt#///| pub extern "C" fn getchar() -> Int = "getchar"
If you want a function level conditional compilation, add the cfg attribute.
other.mbt#///| #cfg(target="native") pub extern "C" fn getchar2() -> Int = "getchar"