项目地址:GitHub - freebasic/fbfrog: FreeBASIC binding creation tool
是一个将.h文件转换成freebasic使用的.bi文件的工具。freebasic是使用gcc编译,可以完全兼容C/C++,只需要将函数声明导入即可直接调用。fbfrog就是转换头文件的工具。
官方简介:fbfrog是一个命令行工具,它读取.h文件(C API声明)并生成相应的.bi文件(FreeBASIC API声明)。之所以需要这个工具,是因为FreeBASIC编译器缺乏直接#include C头的能力,而是需要将所有数据类型和函数声明转换为FB语法。至少fbc与gcc是ABI兼容的,所以只需要翻译的头文件,而不需要二进制包装器(不过对于C++绑定来说,情况就不同了)。fbfrog不支持C++,除了一些简单的情况,如引用参数。
项目里没有release文件, 想使用需要自己编译,官方给的makefile适用于Linux,对于Windows平台且不想安装MSYS2的用户,则要自己编译了。
其实就是写一个适用于Windows平台的makefile。
# FBC的绝对路径
FBC := D:/kaiFa/VisualFBEditor1.3.6/compiler/fbc640.exe
EXEEXT := $(shell $(FBC) -print x)-include config.mkEXTRA_FBFLAGS := -maxerr 1
FBFROG_FBFLAGS := -m fbfrog $(FBFLAGS) $(EXTRA_FBFLAGS)
TESTRUNNER_FBFLAGS := $(FBFLAGS) $(EXTRA_FBFLAGS)SOURCES := $(sort $(wildcard src/*.bas))
HEADERS := $(wildcard src/*.bi)
OBJECTS := $(patsubst src/%.bas,src/obj/%.o,$(SOURCES))# We don't want to use any of make's built-in suffixes/rules
.SUFFIXES:build: fbfrog$(EXEEXT) fbfrog$(EXEEXT): src/obj/libfbfrog.a$(FBC) $(FBFROG_FBFLAGS) $^ -x $@src/obj/libfbfrog.a: $(OBJECTS)$(FBC) $(FBFROG_FBFLAGS) -lib $^ -x $@$(OBJECTS): src/obj/%.o: src/%.bas $(HEADERS)$(FBC) $(FBFROG_FBFLAGS) $< -c -o $@tests: buildclean:del /Q /A src\obj\*.PHONY: tests clean
构建命令:mingw32-make
清除obj文件:mingw32-make clean