我正在尝试在我的Zig项目中使用readline
我设法使链接器找到它添加到构建文件:
exe.linkLibC();
exe.addIncludeDir("/usr/local/opt/readline/include");
exe.addLibPath("/usr/local/opt/readline/lib");
尽管它找到了readline定义,但它似乎没有"看到"。
错误:
▶ zig build
./src/main.zig:1:18: error: C import failed
const readline = @cImport({
^
/usr/local/opt/readline/include/readline/rltypedefs.h:71:36: note: unknown type name 'FILE'
typedef int rl_getc_func_t PARAMS((FILE *));
^
/usr/local/opt/readline/include/readline/readline.h:448:28: note: unknown type name 'FILE'
extern int rl_getc PARAMS((FILE *));
^
/usr/local/opt/readline/include/readline/readline.h:578:8: note: unknown type name 'FILE'
extern FILE *rl_instream;
^
/usr/local/opt/readline/include/readline/readline.h:579:8: note: unknown type name 'FILE'
extern FILE *rl_outstream;
^
/usr/local/opt/readline/include/readline/readline.h:937:3: note: unknown type name 'FILE'
FILE *inf;
^
/usr/local/opt/readline/include/readline/readline.h:938:3: note: unknown type name 'FILE'
FILE *outf;
^
zig-lua...The following command exited with error code 1:
我怎样才能使它工作?
似乎问题不在构建文件中,而是在cImport.
我在做这个:
const readline = @cImport({
@cInclude("readline/readline.h");
});
由于错误消息抱怨来自C的studio .h的东西,我也添加了:
const readline = @cImport({
@cInclude("stdio.h");
@cInclude("readline/readline.h");
});
现在Zig构建工作了。