由於除了 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