将标志添加到 cffi 编译过程

add flags to cffi compile process

我使用 cffi 模块来包装一个简单的 c 代码。问题是,我需要添加一个标志以使其编译 (std=c99)。 目前我有类似的东西:

from cffi import FFI
ffibuilder = FFI()
with open("test.c", 'r') as f:
    ffibuilder.set_source("mymodule", f.read()) 
with open("test.h", 'r') as f:
    ffibuilder.cdef(f.read())
if __name__ == "__main__":
    ffibuilder.compile(verbose=True)

问题是,cffi 自己调用 gcc,我想将 std=c99 添加到它调用 gcc 的标志中。 我缺少任何参数吗?

(注意:我可以更改 gcc 命令本身或 运行 gcc 命令 cffi 自己使用,我想知道我是否遗漏了一些正确的方法)

我终于找到了答案:

set_source 接受 extra_compile_args 参数:所以你可以调用:

ffibuilder.set_source(..., extra_compile_args=["-std=c99"])