由于头文件中不支持除 FFI_LIB 和 FFI_SCOPE 之外的 #include 和 #define,因此您可能希望使用 C 预处理器预处理您的头文件,以便解析所有 #include 和宏。
我使用 -D"__attribute__(ARGS)=" 来删除函数属性,FFI 也不支持这些属性。
这是我的脚本
echo '#define FFI_SCOPE "YOUR_SCOPE"' > header-ffi.h
echo '#define FFI_LIB "/path/to/your_lib.so"' >> header-ffi.h
cpp -P -C -D"__attribute__(ARGS)=" header_original >> header-ffi.h